Sidebar: fix collapsible props

This commit is contained in:
gbuomprisco
2024-10-26 11:44:18 +08:00
parent 681a7c9233
commit 93b0f3d450

View File

@@ -1,7 +1,6 @@
'use client'; 'use client';
import * as React from 'react'; import * as React from 'react';
import { Fragment } from 'react';
import Link from 'next/link'; import Link from 'next/link';
import { usePathname } from 'next/navigation'; import { usePathname } from 'next/navigation';
@@ -846,17 +845,35 @@ export function SidebarNavigation({
} }
if ('children' in item) { if ('children' in item) {
const Container = item.collapsible ? Collapsible : Fragment; const Container = (props: React.PropsWithChildren) => {
const ContentContainer = item.collapsible if (item.collapsible) {
? CollapsibleContent return (
: Fragment; <Collapsible
defaultOpen={!item.collapsed}
className={'group/collapsible'}
>
{props.children}
</Collapsible>
);
}
return props.children;
};
const ContentContainer = (props: React.PropsWithChildren) => {
if (item.collapsible) {
return (
<CollapsibleContent>
{props.children}
</CollapsibleContent>
);
}
return props.children;
};
return ( return (
<Container <Container key={`collapsible-${index}`}>
defaultOpen={!item.collapsed}
className={'group/collapsible'}
key={`collapsible-${index}`}
>
<SidebarGroup key={item.label}> <SidebarGroup key={item.label}>
<If <If
condition={item.collapsible} condition={item.collapsible}