| 87 | } |
| 88 | |
| 89 | export default function Header(props: Props) { |
| 90 | const { title = <div className="text-xl font-bold">Dumpfun</div>, subTitle } = |
| 91 | props |
| 92 | return ( |
| 93 | <header className="flex flex-row items-center h-14 px-4"> |
| 94 | {/* sidebar menu */} |
| 95 | <div className="mr-4 md:hidden flex flex-row items-center"> |
| 96 | <Sheet> |
| 97 | <SheetTrigger> |
| 98 | <MenuIcon /> |
| 99 | </SheetTrigger> |
| 100 | <SheetTitle className="sr-only" /> |
| 101 | <SheetContent side="left"> |
| 102 | <SheetHeader>Dumpfun</SheetHeader> |
| 103 | <ul> |
| 104 | {menus.map(item => ( |
| 105 | <li |
| 106 | key={item.label} |
| 107 | className={cn( |
| 108 | "flex flex-col px-6", |
| 109 | item.children && "text-sm text-gray-400" |
| 110 | )} |
| 111 | > |
| 112 | {item.children ? ( |
| 113 | <ul className=" py-2"> |
| 114 | <span>{item.label}</span> |
| 115 | {item.children.map(t => ( |
| 116 | <NavLink |
| 117 | key={t.label} |
| 118 | label={t.label} |
| 119 | value={t.value!} |
| 120 | icon={t.icon} |
| 121 | trackLabel={t.trackLabel!} |
| 122 | /> |
| 123 | ))} |
| 124 | </ul> |
| 125 | ) : ( |
| 126 | <NavLink |
| 127 | label={item.label} |
| 128 | value={item.value!} |
| 129 | icon={item.icon} |
| 130 | trackLabel={item.trackLabel!} |
| 131 | /> |
| 132 | )} |
| 133 | </li> |
| 134 | ))} |
| 135 | </ul> |
| 136 | </SheetContent> |
| 137 | </Sheet> |
| 138 | </div> |
| 139 | {title} |
| 140 | {subTitle && ( |
| 141 | <div className="ml-auto text-sm text-blue-100">{subTitle}</div> |
| 142 | )} |
| 143 | |
| 144 | {/* top menu */} |
| 145 | <NavigationMenu |
| 146 | className="ml-auto hidden md:block" |