import { api } from "@fileone/convex/_generated/api" import { Link, useLocation } from "@tanstack/react-router" import { useAuth } from "@workos-inc/authkit-react" import { useQuery as useConvexQuery } from "convex/react" import { useAtomValue } from "jotai" import { FilesIcon, HomeIcon, LogOutIcon, SettingsIcon, TrashIcon, User2Icon, } from "lucide-react" import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@/components/ui/dropdown-menu" import { Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarHeader, SidebarMenu, SidebarMenuButton, SidebarMenuItem, SidebarRail, } from "@/components/ui/sidebar" import { LoadingSpinner } from "../components/ui/loading-spinner" import { backgroundTaskProgressAtom } from "./state" export function DashboardSidebar() { return ( ) } function MainSidebarMenu() { const location = useLocation() const isActive = (path: string) => { if (path === "/") { return location.pathname === "/" } return location.pathname.startsWith(path) } return ( Home ) } function AllFilesItem() { const location = useLocation() const rootDirectory = useConvexQuery(api.files.fetchRootDirectory) if (!rootDirectory) return null return ( All Files ) } function TrashItem() { const location = useLocation() const rootDirectory = useConvexQuery(api.files.fetchRootDirectory) if (!rootDirectory) return null return ( Trash ) } function BackgroundTaskProgressItem() { const backgroundTaskProgress = useAtomValue(backgroundTaskProgressAtom) if (!backgroundTaskProgress) return null return ( {backgroundTaskProgress.label} ) } function UserMenu() { const { signOut } = useAuth() function handleSignOut() { signOut() } return (
Acme Inc Enterprise
Settings Log out
) }