@@ -28,15 +28,18 @@ export const Layout = (
28
28
const [ isHamburgerOpen , setIsHamburgerOpen ] = useState ( false )
29
29
const [ isProfileOpen , setIsProfileOpen ] = useState ( false )
30
30
31
- const SearchDropdown = forwardRef ( function SearchDropdown
32
- (
33
- props : {
31
+ /* Add contants with state for each section if it is clicked or not*/
32
+
33
+ const [ isRulesDropDown , setIsRulesDropDown ] = useState ( false )
34
+ const [ isMoreDropDown , setIsMoreDropDown ] = useState ( false )
35
+
36
+ const SearchDropdown = forwardRef ( function SearchDropdown (
37
+ props : {
34
38
inputSelected : boolean ,
35
39
searchstring : string ,
36
40
} ,
37
41
ref : React . ForwardedRef < HTMLDivElement >
38
42
) {
39
-
40
43
const [ isMouseOver , setIsMouseOver ] = useState ( false )
41
44
const LinkElem = ( props : { href : string , children : React . ReactNode } ) => {
42
45
return (
@@ -125,7 +128,6 @@ export const Layout = (
125
128
document . addEventListener ( "mousedown" , handleClickOutside )
126
129
} , [ searchMenuRef ] )
127
130
128
-
129
131
// images to be returned by static nextjs
130
132
return (
131
133
< div
@@ -162,7 +164,7 @@ export const Layout = (
162
164
</ a >
163
165
< a className = "bg-purple-500 w-12 h-12" href = { props . LVM . experimentProjectLink } />
164
166
</ span >
165
- < span className = "hidden md:visible md:flex space-x-4 items-center" >
167
+ < span className = "hidden md:visible md:flex space-x-12 items-center pl-2 pr-2 " >
166
168
< span className = "relative" >
167
169
< input
168
170
className = { twMerge (
@@ -172,22 +174,52 @@ export const Layout = (
172
174
placeholder = "Search"
173
175
onFocus = { ( ) => setIsSearching ( true ) }
174
176
// onBlur={() => setIsSearching(false)}
175
- onChange = { ( e ) => setSearchString ( e . target . value ) }
177
+ onChange = { e => setSearchString ( e . target . value ) }
176
178
ref = { searchMenuInputRef }
177
179
/>
178
- < SearchDropdown inputSelected = { isSearching } searchstring = { searchString } ref = { searchMenuRef } />
180
+ < SearchDropdown
181
+ inputSelected = { isSearching }
182
+ searchstring = { searchString }
183
+ ref = { searchMenuRef }
184
+ />
179
185
</ span >
180
- < HeaderLinks href = "/rule/create" onFocus = { ( ) => setIsSearching ( false ) } > Create Rule</ HeaderLinks >
181
- < HeaderLinks href = "/did/list" > List DIDs</ HeaderLinks >
182
- < HeaderLinks href = "/rule/list" > List Rules</ HeaderLinks >
183
- </ span >
184
- < span className = "flex space-x-2 items-end relative" >
185
- < a
186
- className = "hidden md:block text-gray-100"
187
- href = "/notifications"
186
+ < HeaderLinks
187
+ href = "/did/list"
188
+ className = "w-full pt-2 pb-2 text-gray-100 text-left"
189
+
188
190
>
189
- < HiBell className = "text-4xl" />
190
- </ a >
191
+ DIDs
192
+ </ HeaderLinks >
193
+ < HeaderLinks
194
+ href = "/rse/list"
195
+ className = "w-full pt-2 pb-2 text-gray-100 text-center"
196
+ >
197
+ RSEs
198
+ </ HeaderLinks >
199
+
200
+ < button
201
+ className = "w-full pt-2 pb-2 text-gray-100 text-center"
202
+ onClick = { ( ) => {
203
+ setIsRulesDropDown ( ! isRulesDropDown )
204
+ if ( isMoreDropDown )
205
+ { setIsMoreDropDown ( ! isMoreDropDown ) }
206
+ } }
207
+ >
208
+ Rules
209
+ </ button >
210
+ < button
211
+ className = "w-full pt-2 pb-2 text-gray-100 text-center"
212
+ onClick = { ( ) => {
213
+ setIsMoreDropDown ( ! isMoreDropDown )
214
+ if ( isRulesDropDown ) {
215
+ setIsRulesDropDown ( ! isRulesDropDown ) }
216
+ } }
217
+ >
218
+ ...
219
+ </ button >
220
+ </ span >
221
+
222
+ < span className = "flex space-x-2 items-end relative pl-2 pr-2" >
191
223
< button
192
224
className = "text-gray-100 flex items-center"
193
225
onClick = { ( ) => setIsProfileOpen ( ! isProfileOpen ) }
@@ -204,14 +236,95 @@ export const Layout = (
204
236
/>
205
237
</ span >
206
238
</ nav >
239
+
240
+ < Collapsible showIf = { isRulesDropDown } className = "bg-gray-800" >
241
+ < nav className = "w-full md:flex flex-col md:visible hidden items-start space-y-2 divide-y divide-gray-600 border-t border-gray-600" >
242
+ < HeaderLinks
243
+ href = "/rule/create"
244
+ className = "w-full pt-2 text-gray-100 text-center"
245
+ >
246
+ Create Rule
247
+ </ HeaderLinks >
248
+ < HeaderLinks
249
+ href = "/rule/list"
250
+ className = "w-full pt-2 pb-2 text-gray-100 text-center"
251
+ >
252
+ List Rules
253
+ </ HeaderLinks >
254
+ </ nav >
255
+ </ Collapsible >
256
+ < Collapsible showIf = { isMoreDropDown } className = "bg-gray-800 w-full" >
257
+ < nav className = "w-full md:flex flex-col md:visible hidden items-start space-y-2 divide-y divide-gray-600 border-t border-gray-600" >
258
+ < HeaderLinks
259
+ href = "/subscription/list"
260
+ className = "w-full pt-2 pb-2 text-gray-100 text-center"
261
+ >
262
+ Subscription
263
+ </ HeaderLinks >
264
+ </ nav >
265
+ </ Collapsible >
266
+
207
267
< Collapsible showIf = { isHamburgerOpen } >
208
- < nav
209
- className = "w-full flex flex-col md:hidden items-start space-y-2 divide-y divide-gray-600 border-t border-gray-600 "
210
- >
211
- < HeaderLinks href = "/rule/create" className = "w-full pt-2" > Create Rule</ HeaderLinks >
212
- < HeaderLinks href = "/did/list" className = "w-full pt-2" > List DIDs</ HeaderLinks >
213
- < HeaderLinks href = "/rule/list" className = "w-full pt-2" > List Rules</ HeaderLinks >
214
- < HeaderLinks href = "/notifications" className = "w-full pt-2" > < span className = "flex justify-between items-center" > Notifications < HiBell /> </ span > </ HeaderLinks >
268
+ < nav className = "w-full flex flex-col md:hidden items-start space-y-2 divide-y divide-gray-600 border-t border-gray-600 " >
269
+ < HeaderLinks
270
+ href = "/did/list"
271
+ className = "w-full pt-2 text-gray-100 text-left"
272
+ >
273
+ List DIDs
274
+ </ HeaderLinks >
275
+ < HeaderLinks
276
+ href = "/rse/list"
277
+ className = "w-full pt-2 text-gray-100 text-left"
278
+ >
279
+ List RSEs
280
+ </ HeaderLinks >
281
+
282
+ < button
283
+ className = "w-full pt-2 text-gray-100 text-left"
284
+ onClick = { ( ) => {
285
+ setIsRulesDropDown ( ! isRulesDropDown )
286
+ if ( isMoreDropDown )
287
+ { setIsMoreDropDown ( ! isMoreDropDown ) }
288
+ } }
289
+ >
290
+ Rules
291
+ </ button >
292
+ < Collapsible showIf = { isRulesDropDown } className = 'w-full' >
293
+ < nav className = "w-full flex flex-col md:hidden items-start space-y-2 divide-y divide-gray-600 border-t border-gray-600 " >
294
+ < HeaderLinks
295
+ href = "/rule/create"
296
+ className = "w-full pt-2 text-gray-100 text-left"
297
+ >
298
+ Create Rule
299
+ </ HeaderLinks >
300
+ < HeaderLinks
301
+ href = "/rule/list"
302
+ className = "w-full pt-2 text-gray-100 text-left"
303
+ >
304
+ List Rules
305
+ </ HeaderLinks >
306
+ </ nav >
307
+ </ Collapsible >
308
+ < button
309
+ className = "w-full pt-1 pb-1 text-gray-100 text-left"
310
+ onClick = { ( ) => {
311
+ setIsMoreDropDown ( ! isMoreDropDown )
312
+ if ( isRulesDropDown ) {
313
+ setIsRulesDropDown ( ! isRulesDropDown ) }
314
+ } }
315
+ >
316
+ ...
317
+ </ button >
318
+ < Collapsible showIf = { isMoreDropDown } className = "w-full" >
319
+ < nav className = "w-full flex flex-col md:hidden items-start space-y-2 divide-y divide-gray-600 border-t border-gray-600 " >
320
+ < HeaderLinks
321
+ href = "/subscription/list"
322
+ className = "w-full pt-2 pb-2 text-gray-100 text-left"
323
+ >
324
+ Subscription
325
+ </ HeaderLinks >
326
+ </ nav >
327
+ </ Collapsible >
215
328
</ nav >
216
329
</ Collapsible >
217
330
</ header >
0 commit comments