lms/resources/js/components/sidebar-menu.tsx
2025-12-15 12:26:23 +01:00

34 lines
982 B
TypeScript

import { Sheet, SheetContent, SheetTrigger } from '@/components/ui/sheet';
import { cn } from '@/lib/utils';
import React from 'react';
import useScreen from '../hooks/use-screen';
interface SidebarMenuProps {
children: React.ReactNode;
className?: string;
drawerAction?: React.ReactNode;
}
const SidebarMenu = ({ children, className, drawerAction }: SidebarMenuProps) => {
const { size } = useScreen();
const [open, setOpen] = React.useState(false);
return (
<>
{size === 'sm' || size === 'md' ? (
<Sheet open={open} onOpenChange={setOpen}>
<SheetTrigger asChild>{drawerAction}</SheetTrigger>
<SheetContent side="left" className={cn('border-border w-[220px]', className)}>
{children}
</SheetContent>
</Sheet>
) : (
<div className={cn('w-[220px]', className)}>{children}</div>
)}
</>
);
};
export default SidebarMenu;