Use new sidebar state (#849)
This commit is contained in:
@@ -3,45 +3,45 @@ import { Toaster } from "@/components/ui/toaster";
|
|||||||
import { SideNav } from "./SideNav";
|
import { SideNav } from "./SideNav";
|
||||||
import { PinLeftIcon, PinRightIcon } from "@radix-ui/react-icons";
|
import { PinLeftIcon, PinRightIcon } from "@radix-ui/react-icons";
|
||||||
import { Logo } from "@/components/Logo";
|
import { Logo } from "@/components/Logo";
|
||||||
import { useState } from "react";
|
|
||||||
import { cn } from "@/util/utils";
|
import { cn } from "@/util/utils";
|
||||||
import { Button } from "@/components/ui/button";
|
import { Button } from "@/components/ui/button";
|
||||||
import { LogoMinimized } from "@/components/LogoMinimized";
|
import { LogoMinimized } from "@/components/LogoMinimized";
|
||||||
import { Header } from "./Header";
|
import { Header } from "./Header";
|
||||||
|
import { useSidebarStore } from "@/store/SidebarStore";
|
||||||
|
|
||||||
function RootLayout() {
|
function RootLayout() {
|
||||||
const [sidebarCollapsed, setSidebarCollapsed] = useState(false);
|
const { collapsed, setCollapsed } = useSidebarStore();
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<div className="h-full w-full">
|
<div className="h-full w-full">
|
||||||
<aside
|
<aside
|
||||||
className={cn("fixed h-screen min-h-screen border-r-2 px-6", {
|
className={cn("fixed h-screen min-h-screen border-r-2 px-6", {
|
||||||
"w-64": !sidebarCollapsed,
|
"w-64": !collapsed,
|
||||||
"w-28": sidebarCollapsed,
|
"w-28": collapsed,
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<div className="flex h-full flex-col">
|
<div className="flex h-full flex-col">
|
||||||
<Link to={window.location.origin}>
|
<Link to={window.location.origin}>
|
||||||
<div className="flex h-24 items-center">
|
<div className="flex h-24 items-center">
|
||||||
{sidebarCollapsed ? <LogoMinimized /> : <Logo />}
|
{collapsed ? <LogoMinimized /> : <Logo />}
|
||||||
</div>
|
</div>
|
||||||
</Link>
|
</Link>
|
||||||
<SideNav collapsed={sidebarCollapsed} />
|
<SideNav collapsed={collapsed} />
|
||||||
<div
|
<div
|
||||||
className={cn("mt-auto flex min-h-16", {
|
className={cn("mt-auto flex min-h-16", {
|
||||||
"justify-center": sidebarCollapsed,
|
"justify-center": collapsed,
|
||||||
"justify-end": !sidebarCollapsed,
|
"justify-end": !collapsed,
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<Button
|
<Button
|
||||||
size="icon"
|
size="icon"
|
||||||
variant="ghost"
|
variant="ghost"
|
||||||
onClick={() => {
|
onClick={() => {
|
||||||
setSidebarCollapsed(!sidebarCollapsed);
|
setCollapsed(!collapsed);
|
||||||
}}
|
}}
|
||||||
>
|
>
|
||||||
{sidebarCollapsed ? (
|
{collapsed ? (
|
||||||
<PinRightIcon className="h-6 w-6" />
|
<PinRightIcon className="h-6 w-6" />
|
||||||
) : (
|
) : (
|
||||||
<PinLeftIcon className="h-6 w-6" />
|
<PinLeftIcon className="h-6 w-6" />
|
||||||
@@ -53,7 +53,7 @@ function RootLayout() {
|
|||||||
<Header />
|
<Header />
|
||||||
<main
|
<main
|
||||||
className={cn("pb-4 pl-64", {
|
className={cn("pb-4 pl-64", {
|
||||||
"pl-28": sidebarCollapsed,
|
"pl-28": collapsed,
|
||||||
})}
|
})}
|
||||||
>
|
>
|
||||||
<Outlet />
|
<Outlet />
|
||||||
|
|||||||
Reference in New Issue
Block a user