feat: highlight active main sidebar item

This commit is contained in:
2024-12-02 17:06:10 +00:00
parent da2c7ffcce
commit 3efed700c1

View File

@@ -8,7 +8,7 @@ import {
SidebarMenuItem, SidebarMenuItem,
SidebarSeparator, SidebarSeparator,
} from "@/components/ui/sidebar.tsx"; } from "@/components/ui/sidebar.tsx";
import { Link } from "@tanstack/react-router"; import { Link, useRouterState } from "@tanstack/react-router";
import { LayoutPanelLeft, ScrollText } from "lucide-react"; import { LayoutPanelLeft, ScrollText } from "lucide-react";
function MainSidebar() { function MainSidebar() {
@@ -23,28 +23,39 @@ function MainSidebar() {
<SidebarSeparator /> <SidebarSeparator />
<SidebarContent> <SidebarContent>
<SidebarGroup> <SidebarGroup>
<SidebarMenu> <MainSidebarMenu />
<SidebarMenuItem>
<SidebarMenuButton asChild>
<Link to="/">
<LayoutPanelLeft />
Workspaces
</Link>
</SidebarMenuButton>
</SidebarMenuItem>
<SidebarMenuItem>
<SidebarMenuButton asChild>
<Link to="/templates">
<ScrollText />
Templates
</Link>
</SidebarMenuButton>
</SidebarMenuItem>
</SidebarMenu>
</SidebarGroup> </SidebarGroup>
</SidebarContent> </SidebarContent>
</Sidebar> </Sidebar>
); );
} }
function MainSidebarMenu() {
const router = useRouterState();
return (
<SidebarMenu>
<SidebarMenuItem>
<SidebarMenuButton asChild isActive={router.location.pathname === "/"}>
<Link to="/">
<LayoutPanelLeft />
Workspaces
</Link>
</SidebarMenuButton>
</SidebarMenuItem>
<SidebarMenuItem>
<SidebarMenuButton
asChild
isActive={router.location.pathname === "/templates"}
>
<Link to="/templates">
<ScrollText />
Templates
</Link>
</SidebarMenuButton>
</SidebarMenuItem>
</SidebarMenu>
);
}
export { MainSidebar }; export { MainSidebar };