1
+ 'use client' ;
2
+
3
+ import { SideNav , SideNavItem , SideNavItemGroup } from '@enterwell/react-ui' ;
4
+ import { Button } from '@mui/material' ;
5
+ import { Stack } from '@mui/system' ;
6
+ import Image from 'next/image' ;
7
+ import { useSearchParams } from 'next/navigation' ;
8
+
9
+ export function ExampleSideNav ( ) {
10
+ const params = useSearchParams ( ) ;
11
+ const selectedItem = params . get ( 'item' ) ;
12
+ const show = params . get ( 'show' ) === 'true' ;
13
+ function setShow ( show : boolean ) {
14
+ const url = new URL ( window . location . href ) ;
15
+ url . searchParams . set ( 'show' , show . toString ( ) ) ;
16
+ window . history . pushState ( { } , '' , url . toString ( ) ) ;
17
+ }
18
+
19
+ return (
20
+ < >
21
+ { show && (
22
+ // @highlight -start
23
+ < SideNav header = { (
24
+ < Stack direction = 'row' alignItems = 'center' spacing = { 2 } >
25
+ < div className = "flex flex-row gap-1 items-center whitespace-nowrap" >
26
+ < Image
27
+ alt = "Enterwell"
28
+ width = { 32 }
29
+ height = { 32 }
30
+ src = "https://enterwell.net/wp-content/uploads/2023/05/ew-logomark-monochrome-negative-64.x71089.svg" />
31
+ < span className = "text-xs sm:text-sm md:text-lg" > Enterwell { '<' } UI{ ' \\>' } </ span >
32
+ </ div >
33
+ </ Stack >
34
+ ) } >
35
+ < SideNavItem href = "?item=1& show = true " selected = { selectedItem === '1' } > Item 1</ SideNavItem >
36
+ < SideNavItem href = "?item=2& show = true " selected = { selectedItem === '2' } > Item 2</ SideNavItem >
37
+ < SideNavItemGroup label = "Group 1" defaultExpanded = { selectedItem === '3' || selectedItem === '4' } >
38
+ < SideNavItem href = "?item=3& show = true " selected = { selectedItem === '3' } > Item 3</ SideNavItem >
39
+ < SideNavItem href = "?item=4& show = true " selected = { selectedItem === '4' } > Item 4</ SideNavItem >
40
+ </ SideNavItemGroup >
41
+ </ SideNav >
42
+ // @highlight -end
43
+ ) }
44
+ < Button variant = 'contained' onClick = { ( ) => setShow ( ! show ) } > Toggle SideNav</ Button >
45
+ </ >
46
+ )
47
+ }
0 commit comments