ldc-ovoteam/resources/ts/back/Components/CustomSidebarTrigger.tsx

48 lines
1.2 KiB
TypeScript
Raw Permalink Normal View History

import { PanelRightCloseIcon, PanelRightOpenIcon } from "lucide-react";
import { useEffect } from "react";
2026-03-30 14:17:31 +02:00
import { Button } from "@/components/ui/button";
import { useSidebar } from "@/components/ui/sidebar";
import {
Tooltip,
TooltipContent,
TooltipTrigger,
} from "@/components/ui/tooltip";
import useDeviceType from "@/hooks/use-device-type";
import trans from "@/hooks/use-translations";
2026-03-30 14:17:31 +02:00
export default function CustomSidebarTrigger() {
const { toggleSidebar, state } = useSidebar();
const { isMobile } = useDeviceType();
useEffect(() => {
if (state === "collapsed") {
localStorage.setItem("vite-ui-collapsed", "true");
} else {
localStorage.removeItem("vite-ui-collapsed");
}
}, [state]);
2026-03-30 14:17:31 +02:00
return (
<Tooltip>
<TooltipTrigger asChild>
<Button
onClick={toggleSidebar}
variant="ghost"
className="rotate-180"
size="icon"
>
{isMobile || state === "collapsed" ? (
2026-03-30 14:17:31 +02:00
<PanelRightOpenIcon />
) : (
<PanelRightCloseIcon />
)}
</Button>
</TooltipTrigger>
<TooltipContent side="right">
<p>{trans("uwil-backend::back.sidebar_trigger_tooltip")}</p>
2026-03-30 14:17:31 +02:00
</TooltipContent>
</Tooltip>
);
}