engresearch's picture
Upload folder using huggingface_hub
7f88bdf verified
import {
LayoutDashboard,
Upload,
FileText,
FileEdit,
Settings,
Users,
LogOut,
Zap,
} from "lucide-react";
import { NavLink } from "@/components/NavLink";
import { useLocation } from "react-router-dom";
import {
Sidebar,
SidebarContent,
SidebarGroup,
SidebarGroupContent,
SidebarGroupLabel,
SidebarMenu,
SidebarMenuButton,
SidebarMenuItem,
SidebarFooter,
useSidebar,
} from "@/components/ui/sidebar";
const mainItems = [
{ title: "Dashboard", url: "/dashboard", icon: LayoutDashboard },
{ title: "Upload Tender", url: "/upload", icon: Upload },
{ title: "My Tenders", url: "/tenders", icon: FileText },
{ title: "Proposals", url: "/proposals", icon: FileEdit },
];
const secondaryItems = [
{ title: "Consultant Portal", url: "/consultant", icon: Users },
{ title: "Settings", url: "/settings", icon: Settings },
];
export function AppSidebar() {
const { state } = useSidebar();
const collapsed = state === "collapsed";
const location = useLocation();
const isActive = (path: string) =>
location.pathname === path || location.pathname.startsWith(path + "/");
return (
<Sidebar collapsible="icon">
<SidebarContent>
<SidebarGroup>
<SidebarGroupLabel>
<div className="flex items-center gap-2">
<Zap className="h-5 w-5 text-primary" />
{!collapsed && <span className="text-base font-bold text-foreground">TenderPulse</span>}
</div>
</SidebarGroupLabel>
<SidebarGroupContent>
<SidebarMenu>
{mainItems.map((item) => (
<SidebarMenuItem key={item.title}>
<SidebarMenuButton asChild isActive={isActive(item.url)}>
<NavLink
to={item.url}
end={item.url === "/dashboard"}
className="hover:bg-muted/50"
activeClassName="bg-primary/10 text-primary font-medium"
>
<item.icon className="mr-2 h-4 w-4" />
{!collapsed && <span>{item.title}</span>}
</NavLink>
</SidebarMenuButton>
</SidebarMenuItem>
))}
</SidebarMenu>
</SidebarGroupContent>
</SidebarGroup>
<SidebarGroup>
<SidebarGroupLabel>Management</SidebarGroupLabel>
<SidebarGroupContent>
<SidebarMenu>
{secondaryItems.map((item) => (
<SidebarMenuItem key={item.title}>
<SidebarMenuButton asChild isActive={isActive(item.url)}>
<NavLink
to={item.url}
className="hover:bg-muted/50"
activeClassName="bg-primary/10 text-primary font-medium"
>
<item.icon className="mr-2 h-4 w-4" />
{!collapsed && <span>{item.title}</span>}
</NavLink>
</SidebarMenuButton>
</SidebarMenuItem>
))}
</SidebarMenu>
</SidebarGroupContent>
</SidebarGroup>
</SidebarContent>
<SidebarFooter>
<SidebarMenu>
<SidebarMenuItem>
<SidebarMenuButton className="text-muted-foreground hover:text-destructive">
<LogOut className="mr-2 h-4 w-4" />
{!collapsed && <span>Log Out</span>}
</SidebarMenuButton>
</SidebarMenuItem>
</SidebarMenu>
</SidebarFooter>
</Sidebar>
);
}