From 6918b0ae28bdbc84c671ef7eb82fbeba9df74460 Mon Sep 17 00:00:00 2001 From: Rot4tion Date: Fri, 11 Oct 2024 13:15:23 +0700 Subject: [PATCH] handle mini state --- public/registry/shadcn-sidebar.json | 2 +- src/components/admin-panel/collapse-menu-button.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/public/registry/shadcn-sidebar.json b/public/registry/shadcn-sidebar.json index 14ea155..e36dc46 100644 --- a/public/registry/shadcn-sidebar.json +++ b/public/registry/shadcn-sidebar.json @@ -85,7 +85,7 @@ }, { "type": "registry:component", - "content": "\"use client\";\n\nimport Link from \"next/link\";\nimport { useState } from \"react\";\nimport { ChevronDown, Dot, LucideIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/ui/button\";\nimport { DropdownMenuArrow } from \"@radix-ui/react-dropdown-menu\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger\n} from \"@/components/ui/collapsible\";\nimport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider\n} from \"@/components/ui/tooltip\";\nimport {\n DropdownMenu,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuSeparator\n} from \"@/components/ui/dropdown-menu\";\nimport { usePathname } from \"next/navigation\";\n\ntype Submenu = {\n href: string;\n label: string;\n active?: boolean;\n};\n\ninterface CollapseMenuButtonProps {\n icon: LucideIcon;\n label: string;\n active: boolean;\n submenus: Submenu[];\n isOpen: boolean | undefined;\n}\n\nexport function CollapseMenuButton({\n icon: Icon,\n label,\n active,\n submenus,\n isOpen\n}: CollapseMenuButtonProps) {\n const pathname = usePathname();\n const isSubmenuActive = submenus.some((submenu) =>\n submenu.active === undefined ? submenu.href === pathname : submenu.active\n );\n const [isCollapsed, setIsCollapsed] = useState(isSubmenuActive);\n\n return isOpen ? (\n \n div>div>svg]:rotate-180 mb-1\"\n asChild\n >\n \n
\n
\n \n \n \n \n {label}\n

\n
\n \n \n
\n \n \n \n \n {submenus.map(({ href, label, active }, index) => (\n \n \n \n \n \n \n {label}\n

\n \n \n ))}\n
\n \n ) : (\n \n \n \n \n \n \n
\n
\n \n \n \n \n {label}\n

\n
\n
\n \n
\n
\n \n {label}\n \n
\n
\n \n \n {label}\n \n \n {submenus.map(({ href, label, active }, index) => (\n \n \n

{label}

\n \n
\n ))}\n \n
\n
\n );\n}\n", + "content": "\"use client\";\n\nimport Link from \"next/link\";\nimport { useState } from \"react\";\nimport { ChevronDown, Dot, LucideIcon } from \"lucide-react\";\n\nimport { cn } from \"@/lib/utils\";\nimport { Button } from \"@/components/ui/button\";\nimport { DropdownMenuArrow } from \"@radix-ui/react-dropdown-menu\";\nimport {\n Collapsible,\n CollapsibleContent,\n CollapsibleTrigger\n} from \"@/components/ui/collapsible\";\nimport {\n Tooltip,\n TooltipTrigger,\n TooltipContent,\n TooltipProvider\n} from \"@/components/ui/tooltip\";\nimport {\n DropdownMenu,\n DropdownMenuItem,\n DropdownMenuLabel,\n DropdownMenuTrigger,\n DropdownMenuContent,\n DropdownMenuSeparator\n} from \"@/components/ui/dropdown-menu\";\nimport { usePathname } from \"next/navigation\";\n\ntype Submenu = {\n href: string;\n label: string;\n active?: boolean;\n};\n\ninterface CollapseMenuButtonProps {\n icon: LucideIcon;\n label: string;\n active: boolean;\n submenus: Submenu[];\n isOpen: boolean | undefined;\n}\n\nexport function CollapseMenuButton({\n icon: Icon,\n label,\n active,\n submenus,\n isOpen\n}: CollapseMenuButtonProps) {\n const pathname = usePathname();\n const isSubmenuActive = submenus.some((submenu) =>\n submenu.active === undefined ? submenu.href === pathname : submenu.active\n );\n const [isCollapsed, setIsCollapsed] = useState(isSubmenuActive);\n\n return isOpen ? (\n \n div>div>svg]:rotate-180 mb-1\"\n asChild\n >\n \n
\n
\n \n \n \n \n {label}\n

\n
\n \n \n
\n \n \n \n \n {submenus.map(({ href, label, active }, index) => (\n \n \n \n \n \n \n {label}\n

\n \n \n ))}\n
\n \n ) : (\n \n \n \n \n \n \n
\n
\n \n \n \n \n {label}\n

\n
\n
\n \n
\n
\n \n {label}\n \n
\n
\n \n \n {label}\n \n \n {submenus.map(({ href, label, active }, index) => (\n \n \n

{label}

\n \n
\n ))}\n \n
\n
\n );\n}\n", "path": "components/admin-panel/collapse-menu-button.tsx", "target": "components/admin-panel/collapse-menu-button.tsx" }, diff --git a/src/components/admin-panel/collapse-menu-button.tsx b/src/components/admin-panel/collapse-menu-button.tsx index 30fd3c6..dd99548 100644 --- a/src/components/admin-panel/collapse-menu-button.tsx +++ b/src/components/admin-panel/collapse-menu-button.tsx @@ -139,7 +139,7 @@ export function CollapseMenuButton({