@@ -38,70 +38,43 @@ const Navbar = () => {
38
38
< NavItem to = "/about" icon = { < IconAbout /> } > About</ NavItem >
39
39
< NavItem to = "/news" icon = { < IconNews /> } > News</ NavItem >
40
40
< NavItem to = "/rateus" icon = { < IconRateUs /> } > RateUs</ NavItem >
41
- { /* Conditionally render "My Canteen" button */ }
42
41
{ canteenId && (
43
42
< NavItem to = { `/section/${ canteenId } ` } icon = { < IconCanteen /> } > My Canteen</ NavItem >
44
43
) }
45
44
</ div >
46
45
</ div >
47
46
48
-
49
- < div className = "ml-16 flex gap-6 items-baseline space-x-4 " >
50
- < NavItem to = "/home" className = "nav-item" icon = { < IconHome /> } > Home</ NavItem >
51
- < NavItem to = "/about" className = "nav-item" icon = { < IconAbout /> } > About</ NavItem >
52
- < NavItem to = "/news" className = "nav-item" icon = { < IconNews /> } > News</ NavItem >
53
- < NavItem to = "/rateus" className = "nav-item" icon = { < IconRateUs /> } > RateUs</ NavItem >
47
+ < div className = "hidden md:flex items-center gap-5" >
48
+ < button onClick = { toggleTheme } className = "p-2 rounded focus:outline-none text-4xl border-none outline-none" >
49
+ { theme === 'dark' ? '🌞' : '🌙' }
50
+ </ button >
51
+ < div >
52
+ < Link to = "/" >
53
+ < button className = { `py-1 px-2 rounded w-full h-auto text-l relative z-0 rounded-lg transition-all duration-200 hover:scale-110 ${ theme === 'dark' ? 'bg-white text-black' : 'bg-green-400 hover:bg-green-600 hover:shadow-green text-white' } ` } >
54
+ Log out
55
+ </ button >
56
+ </ Link >
54
57
</ div >
55
-
56
- </ div >
57
- < div className = "hidden md:flex items-center gap-5" >
58
- < button onClick = { toggleTheme } className = "p-2 rounded focus:outline-none text-4xl border-none outline-none " >
59
- { theme === 'dark' ? '🌞' : '🌙' }
60
- </ button >
61
- < div >
62
- < Link to = "/" >
63
- < button
64
-
65
- className = { `py-1 px-2 rounded w-full h-auto text-l relative z-0 rounded-lg transition-all duration-200 hover:scale-110 ${ theme === 'dark' ? 'bg-white text-black' : 'bg-green-400 hover:bg-green-600 hover:shadow-green text-white' } ` }
58
+ </ div >
66
59
67
- >
68
- Log out
69
- </ button >
70
- </ Link >
60
+ < div className = "-mr-2 flex md:hidden" >
61
+ < button onClick = { toggleTheme } className = "p-2 rounded focus:outline-none text-2xl border-none outline-none" >
62
+ { theme === 'dark' ? '🌞' : '🌙' }
63
+ </ button >
64
+ < button
65
+ onClick = { toggleMenu }
66
+ className = "inline-flex items-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:bg-gray-700 focus:text-white"
67
+ aria-expanded = "false"
68
+ >
69
+ { isOpen ? (
70
+ < IoClose className = "text-white" />
71
+ ) : (
72
+ < GiHamburgerMenu className = "text-white" />
73
+ ) }
74
+ </ button >
71
75
</ div >
72
76
</ div >
73
- < div className = "-mr-2 flex md:hidden" >
74
- < button onClick = { toggleTheme } className = "p-2 rounded focus:outline-none text-2xl border-none outline-none " >
75
- { theme === 'dark' ? '🌞' : '🌙' }
76
- </ button >
77
- < button
78
- onClick = { toggleMenu }
79
- className = "inline-flex items-center p-2 rounded-md text-gray-400 hover:text-white hover:bg-gray-700 focus:outline-none focus:bg-gray-700 focus:text-white"
80
- aria-expanded = "false"
81
- >
82
- { isOpen ? (
83
- < IoClose className = "text-white" />
84
- ) : (
85
- < GiHamburgerMenu className = "text-white" />
86
- ) }
87
- </ button >
88
- </ div >
89
77
</ div >
90
- </ div >
91
- < AnimatePresence >
92
- { isOpen && (
93
- < motion . div
94
- initial = { { opacity : 0 , y : - 50 } }
95
- animate = { { opacity : 1 , y : 0 } }
96
- exit = { { opacity : 0 , y : - 50 } }
97
- className = "md:hidden absolute left-0 w-full flex flex-col items-center justify-center"
98
- >
99
- < div className = "w-[100%] bg-[#152146] px-[20%] pt-2 pb-3 space-y-1 mt-1 dark:bg-teal-900" >
100
- < MobileNavItem to = "/home" > Home</ MobileNavItem >
101
- < MobileNavItem to = "/about" > About us</ MobileNavItem >
102
- < MobileNavItem to = "/news" > News</ MobileNavItem >
103
- < MobileNavItem to = "/contact" > Contact</ MobileNavItem >
104
-
105
78
106
79
< AnimatePresence >
107
80
{ isOpen && (
@@ -116,15 +89,12 @@ const Navbar = () => {
116
89
< MobileNavItem to = "/about" > About us</ MobileNavItem >
117
90
< MobileNavItem to = "/news" > News</ MobileNavItem >
118
91
< MobileNavItem to = "/contact" > Contact</ MobileNavItem >
119
- < MobileNavItem to = "/rateus" > RateUs</ MobileNavItem >
120
- { /* Conditionally render "My Canteen" button */ }
92
+ < MobileNavItem to = "/rateus" > RateUs</ MobileNavItem >
121
93
{ canteenId && (
122
94
< MobileNavItem to = { `/section/${ canteenId } ` } > My Canteen</ MobileNavItem >
123
95
) }
124
96
< MobileNavItem to = "/" >
125
- < button
126
- className = { `rounded transition duration-300 ease-in-out transform hover:scale-105 ${ theme === 'dark' ? 'bg-white text-black' : 'bg-green-500 hover:bg-green-700 text-white py-1 px-2' } ` }
127
- >
97
+ < button className = { `rounded transition duration-300 ease-in-out transform hover:scale-105 ${ theme === 'dark' ? 'bg-white text-black' : 'bg-green-500 hover:bg-green-700 text-white py-1 px-2' } ` } >
128
98
Log out
129
99
</ button >
130
100
</ MobileNavItem >
@@ -134,58 +104,31 @@ const Navbar = () => {
134
104
</ AnimatePresence >
135
105
</ nav >
136
106
</ >
137
- < MobileNavItem to = "/rateus" > Rateus < / M o b i l e N a v I t e m >
138
-
139
- < MobileNavItem to = "/" >
140
- < Link to = "/" >
141
- < button
142
-
143
- className = { `rounded transition duration-300 ease-in-out transform hover:scale-105 ${ theme === 'dark' ? 'bg-white text-black' : 'bg-green-500 hover:bg-green-700 text-white py-1 px-2' } ` }
144
-
145
- >
146
- Log out
147
- </ button >
148
- </ Link >
149
- </ MobileNavItem >
150
- < / d i v >
151
- </motion . div >
152
- ) }
153
- </ AnimatePresence >
154
- </ div >
155
- < / n a v >
156
- </>
157
107
) ;
158
108
} ;
159
109
160
110
const NavItem = ( { icon, to, children } ) => {
161
111
return (
162
- < Link
163
- to = { to }
164
- className = "flex items-center space-x-2 w-full h-auto relative z-0 rounded-lg transition-all duration-200 hover:scale-125 text-xl block hover:bg-opacity-50"
165
- >
112
+ < Link to = { to } className = "flex items-center space-x-2 w-full h-auto relative z-0 rounded-lg transition-all duration-200 hover:scale-125 text-xl block hover:bg-opacity-50" >
166
113
{ icon && < span > { icon } </ span > }
167
114
< span > { children } </ span >
168
115
</ Link >
169
116
) ;
170
117
} ;
171
118
172
119
const MobileNavItem = ( { to, children } ) => {
173
- const classname = "z-[2] text-gray-300 text-center hover:text-white block px-3 py-2 rounded-md text-xl font-medium " ;
120
+ const classname = "z-[2] text-gray-300 text-center hover:text-white block px-3 py-2 rounded-md text-xl font-medium" ;
174
121
return (
175
- < Link
176
- to = { to }
177
- className = { classname + "hover:bg-gray-700" }
178
- >
122
+ < Link to = { to } className = { classname + " hover:bg-gray-700" } >
179
123
{ children }
180
124
</ Link >
181
125
) ;
182
126
} ;
183
127
184
- // Define your icon components here
185
128
const IconHome = ( ) => < span > 🏠</ span > ;
186
129
const IconAbout = ( ) => < span > ℹ️</ span > ;
187
130
const IconNews = ( ) => < span > 📰</ span > ;
188
131
const IconRateUs = ( ) => < span > ⭐</ span > ;
189
- const IconCanteen = ( ) => < span > 🥗</ span >
132
+ const IconCanteen = ( ) => < span > 🥗</ span > ;
190
133
191
134
export default Navbar ;
0 commit comments