'use client' import {ReactNode, Suspense, use, useState} from 'react' import Image from 'next/image' import Link from 'next/link' import {ChangePasswordDialog} from '@/components/composites/dialogs/change-password-dialog' import {RealnameAuthDialog} from '@/components/composites/dialogs/realname-auth-dialog' import UserCenter from '@/components/composites/user-center' import {Button} from '@/components/ui/button' import {Tooltip, TooltipContent, TooltipProvider, TooltipTrigger} from '@/components/ui/tooltip' import {Archive, ArchiveRestore, Eye, HardDriveUpload, IdCard, LockKeyhole, Package, PanelLeftCloseIcon, PanelLeftOpenIcon, ShoppingCart, UserRound, UserRoundPen, Wallet} from 'lucide-react' import {merge} from '@/lib/utils' import logoAvatar from '@/assets/logo-avatar.svg' import logoText from '@/assets/logo-text.svg' import {useLayoutStore} from '@/components/stores/layout' import {useProfileStore} from '@/components/stores/profile' export function Shell(props: { children: ReactNode }) { const navbar = useLayoutStore(store => store.navbar) return (
{props.label}
) } function NavItem(props: { href: string icon?: ReactNode label: string expand?: boolean }) { const [open, setOpen] = useState(false) const handleOpenChange = (open: boolean) => { if (!props.expand) { setOpen(open) } } const setNavbar = useLayoutStore(store => store.setNavbar) const closeNavBarIfMobile = () => { if (window.innerWidth < 768) { setNavbar(false) } } return ({props.label}