mirror of
https://github.com/eliasstepanik/core.git
synced 2026-01-10 08:48:29 +00:00
71 lines
1.6 KiB
TypeScript
71 lines
1.6 KiB
TypeScript
import * as React from "react";
|
|
|
|
import {
|
|
Sidebar,
|
|
SidebarContent,
|
|
SidebarFooter,
|
|
SidebarHeader,
|
|
SidebarMenu,
|
|
SidebarMenuButton,
|
|
SidebarMenuItem,
|
|
} from "../ui/sidebar";
|
|
import { DashboardIcon } from "@radix-ui/react-icons";
|
|
import { Code, LucideFileStack } from "lucide-react";
|
|
import { NavMain } from "./nav-main";
|
|
import { useUser } from "~/hooks/useUser";
|
|
import { NavUser } from "./nav-user";
|
|
import { useWorkspace } from "~/hooks/useWorkspace";
|
|
|
|
const data = {
|
|
user: {
|
|
name: "shadcn",
|
|
email: "m@example.com",
|
|
avatar: "/avatars/shadcn.jpg",
|
|
},
|
|
navMain: [
|
|
{
|
|
title: "Dashboard",
|
|
url: "/",
|
|
icon: DashboardIcon,
|
|
},
|
|
{
|
|
title: "API",
|
|
url: "/api",
|
|
icon: Code,
|
|
},
|
|
],
|
|
};
|
|
|
|
export function AppSidebar({ ...props }: React.ComponentProps<typeof Sidebar>) {
|
|
const user = useUser();
|
|
const workspace = useWorkspace();
|
|
|
|
return (
|
|
<Sidebar collapsible="offcanvas" {...props} className="bg-background">
|
|
<SidebarHeader>
|
|
<SidebarMenu>
|
|
<SidebarMenuItem>
|
|
<SidebarMenuButton
|
|
asChild
|
|
className="data-[slot=sidebar-menu-button]:!p-1.5"
|
|
>
|
|
<a href="#">
|
|
<span className="text-base font-semibold">
|
|
{workspace.name}
|
|
</span>
|
|
</a>
|
|
</SidebarMenuButton>
|
|
</SidebarMenuItem>
|
|
</SidebarMenu>
|
|
</SidebarHeader>
|
|
<SidebarContent>
|
|
<NavMain items={data.navMain} />
|
|
</SidebarContent>
|
|
|
|
<SidebarFooter>
|
|
<NavUser user={user} />
|
|
</SidebarFooter>
|
|
</Sidebar>
|
|
);
|
|
}
|