43 lines
1.3 KiB
TypeScript
43 lines
1.3 KiB
TypeScript
// * Packages
|
|
import { PanelRightOpenIcon, PanelRightCloseIcon } from "lucide-react";
|
|
// * Components shadcn
|
|
import { Button } from "@/components/ui/button";
|
|
import { useSidebar } from "@/components/ui/sidebar";
|
|
import {
|
|
Tooltip,
|
|
TooltipContent,
|
|
TooltipTrigger,
|
|
} from "@/components/ui/tooltip";
|
|
// * Other
|
|
import useTrans from "@/hooks/use-translations";
|
|
|
|
export default function CustomSidebarTrigger() {
|
|
const { toggleSidebar, state } = useSidebar();
|
|
|
|
if (state === "collapsed") {
|
|
localStorage.setItem("vite-ui-collapsed", "true");
|
|
} else {
|
|
localStorage.removeItem("vite-ui-collapsed");
|
|
}
|
|
return (
|
|
<Tooltip>
|
|
<TooltipTrigger asChild>
|
|
<Button
|
|
onClick={toggleSidebar}
|
|
variant="ghost"
|
|
className="rotate-180"
|
|
size="icon"
|
|
>
|
|
{state === "collapsed" ? (
|
|
<PanelRightOpenIcon />
|
|
) : (
|
|
<PanelRightCloseIcon />
|
|
)}
|
|
</Button>
|
|
</TooltipTrigger>
|
|
<TooltipContent side="right">
|
|
<p>{useTrans("back.sidebar_trigger_tooltip")}</p>
|
|
</TooltipContent>
|
|
</Tooltip>
|
|
);
|
|
}
|