gitscope
← marzneshin / v0.3.0-alpha1 / dashboard/src/features/sidebar/toggle.tsx
https://dev.kronoz.win/r/marzneshin.git
dashboard/src/features/sidebar/toggle.tsx · TypeScript
Blame Raw
 1
 2import { Button } from '@marzneshin/components';
 3import { PanelBottomClose, PanelBottomOpen, PanelRightClose, PanelRightOpen } from 'lucide-react';
 4import { FC } from 'react';
 5
 6interface ToggleButtonProps {
 7    isDesktop: boolean;
 8    collapsed: boolean;
 9    open: boolean;
10    onToggle: () => void;
11}
12
13export const ToggleButton: FC<ToggleButtonProps> = ({ isDesktop, collapsed, open, onToggle }) => {
14    const Icon = isDesktop ?
15        (collapsed ? PanelRightClose : PanelRightOpen) :
16        (open ? PanelBottomClose : PanelBottomOpen);
17
18    return (
19        <Button className="p-2 bg-secondary-foreground border-2 text-primary-foreground dark:bg-secondary dark:text-primary" onClick={onToggle}>
20            <Icon className="w-full h-full" />
21        </Button>
22    );
23};