chore(FE-40): update CollapseMenu styling

This commit is contained in:
ValdiANS
2025-10-01 14:04:50 +07:00
parent 6969a2bcb8
commit a347024188
+31 -25
View File
@@ -48,14 +48,15 @@ const CollapseMenu = ({
depth = 0, depth = 0,
}: CollapseMenuProps) => { }: CollapseMenuProps) => {
const pathname = usePathname(); const pathname = usePathname();
const [open, setOpen] = useState(isCollapseActive(pathname, link)); const isActive = isCollapseActive(pathname, link);
const [open, setOpen] = useState(isActive);
const menuCollapseTitle = ( const menuCollapseTitle = (
<div <div
className={cn( className={cn(
'w-full px-3 py-2 rounded-md text-base font-semibold transition-colors flex flex-row justify-between items-center gap-2 hover:bg-primary/10', 'w-full px-3 py-2 rounded-md text-base font-semibold transition-colors flex flex-row justify-between items-center gap-2 hover:bg-primary/10 opacity-40',
{ {
'bg-primary/10': open, 'bg-primary/10 opacity-100': open || isActive,
} }
)} )}
> >
@@ -76,8 +77,6 @@ const CollapseMenu = ({
</div> </div>
); );
const paddingLeftDepth = `pl-${4 * (depth + 1)}`;
return ( return (
<Collapse <Collapse
open={open} open={open}
@@ -85,33 +84,40 @@ const CollapseMenu = ({
onOpenChange={setOpen} onOpenChange={setOpen}
titleClassName='p-0!' titleClassName='p-0!'
> >
<Menu className={cn('py-0.5', paddingLeftDepth)}> <Menu>
{submenu?.map((item, idx) => { <div
const hasSubmenu = item.submenu && item.submenu.length > 0; className='w-full py-0.5 flex flex-col gap-0.5'
style={{
paddingLeft: `${0.5 * (depth + 1)}rem`,
}}
>
{submenu?.map((item, idx) => {
const hasSubmenu = item.submenu && item.submenu.length > 0;
if (!hasSubmenu) {
return (
<MenuItem
key={idx}
title={item.title}
href={item.link}
icon={item.icon}
active={isPathActive(pathname, item.link)}
/>
);
}
if (!hasSubmenu) {
return ( return (
<MenuItem <CollapseMenu
key={idx} key={idx}
title={item.title} title={item.title}
href={item.link} link={item.link}
icon={item.icon} icon={item.icon}
active={isPathActive(pathname, item.link)} submenu={item.submenu}
depth={depth + 1}
/> />
); );
} })}
</div>
return (
<CollapseMenu
key={idx}
title={item.title}
link={item.link}
icon={item.icon}
submenu={item.submenu}
depth={depth + 1}
/>
);
})}
</Menu> </Menu>
</Collapse> </Collapse>
); );