import { Link } from "wouter" import { SearchIcon, SettingsIcon, TagsIcon, ArchiveIcon, UserIcon, LayoutListIcon, PanelLeftIcon, PanelLeftCloseIcon, MenuIcon, XIcon } from "lucide-react" import { Button, buttonVariants } from "@/components/ui/button.tsx" import { Tooltip, TooltipContent, TooltipTrigger } from "@/components/ui/tooltip.tsx" import { useLogin } from "@/state/user.ts"; import { useNavItems } from "./navAtom"; import { Separator } from "../ui/separator"; import { cn } from "@/lib/utils"; interface NavItemProps { icon: React.ReactNode; to: string; name: string; } export function NavItem({ icon, to, name }: NavItemProps) { return {icon} {name} {name} } interface NavItemButtonProps { icon: React.ReactNode; onClick: () => void; name: string; className?: string; } export function NavItemButton({ icon, onClick, name, className }: NavItemButtonProps) { return {name} } export function NavList() { const loginInfo = useLogin(); const navItems = useNavItems(); return } // 사이드바 토글 버튼 export function SidebarToggle({ isOpen, onToggle }: { isOpen: boolean; onToggle: () => void }) { return ( {isOpen ? "Close sidebar" : "Open sidebar"} ); } // 모바일용 사이드바 토글 버튼 export function MobileSidebarToggle({ isOpen, onToggle }: { isOpen: boolean; onToggle: () => void }) { return ( ); } // 데스크탑용 사이드바 네비게이션 export function SidebarNav({ isCollapsed, onNavigate }: { isCollapsed: boolean; onNavigate?: () => void }) { const loginInfo = useLogin(); const navItems = useNavItems(); return (
} to={loginInfo ? "/profile" : "/login"} name={loginInfo ? "Profiles" : "Login"} isCollapsed={isCollapsed} onNavigate={onNavigate} /> } to="/setting" name="Settings" isCollapsed={isCollapsed} onNavigate={onNavigate} />
); } // 사이드바 네비게이션 아이템 interface SidebarNavItemProps { icon: React.ReactNode; to: string; name: string; isCollapsed: boolean; onNavigate?: () => void; } function SidebarNavItem({ icon, to, name, isCollapsed, onNavigate }: SidebarNavItemProps) { if (isCollapsed) { return ( {icon} {name} {name} ); } return ( {icon} {name} ); } // 모바일용 하단 네비게이션 export function BottomNav() { const loginInfo = useLogin(); const navItems = useNavItems(); return ( ); } // 하단 네비게이션 아이템 interface BottomNavItemProps { icon: React.ReactNode; to: string; name: string; className?: string; } function BottomNavItem({ icon, to, name, className }: BottomNavItemProps) { return ( {icon} {name} ); }