diff --git a/src/views/AdminLayout.tsx b/src/views/AdminLayout.tsx index 706adec..5584906 100644 --- a/src/views/AdminLayout.tsx +++ b/src/views/AdminLayout.tsx @@ -1,17 +1,15 @@ "use client"; import type { ReactNode } from "react"; -import { useEffect, useMemo, useState } from "react"; +import { useMemo } from "react"; import { Building2, CalendarDays, - ChevronDown, FileText, FolderTree, GraduationCap, LayoutDashboard, - PanelRightClose, - PanelRightOpen, + Menu, ShieldCheck, Tags, TicketPercent, @@ -20,7 +18,7 @@ import { import { Navigate, NavLink, useLocation } from "@/lib/router"; import { useAuth } from "@/contexts/AuthContext"; import { Button } from "@/components/ui/button"; -import { Collapsible, CollapsibleContent, CollapsibleTrigger } from "@/components/ui/collapsible"; +import { Sheet, SheetClose, SheetContent, SheetHeader, SheetTitle, SheetTrigger } from "@/components/ui/sheet"; import { cn } from "@/lib/utils"; const navGroups = [ @@ -65,31 +63,11 @@ type NavItem = (typeof navGroups)[number]["items"][number]; export default function AdminLayout({ children }: { children: ReactNode }) { const location = useLocation(); const { user, isAuthenticated, loading } = useAuth(); - const [collapsed, setCollapsed] = useState(false); - const [openGroups, setOpenGroups] = useState>({ - dashboard: true, - users: true, - events: true, - blog: true, - }); const canAccessAdmin = useMemo( () => isAuthenticated && Boolean(user?.is_staff || user?.is_superuser || user?.can_access_blog_admin), [isAuthenticated, user?.can_access_blog_admin, user?.is_staff, user?.is_superuser], ); - useEffect(() => { - const saved = window.localStorage.getItem("admin-sidebar-collapsed"); - if (saved) setCollapsed(saved === "true"); - }, []); - - const toggleCollapsed = () => { - setCollapsed((current) => { - const next = !current; - window.localStorage.setItem("admin-sidebar-collapsed", String(next)); - return next; - }); - }; - if (loading) { return (
@@ -112,7 +90,6 @@ export default function AdminLayout({ children }: { children: ReactNode }) { const visibleGroups = navGroups .map((group) => ({ ...group, items: group.items.filter(canSeeItem) })) .filter((group) => group.items.length > 0); - const visibleNavItems = visibleGroups.flatMap((group) => group.items); const isItemActive = (to: string) => { if (location.pathname === to) return true; @@ -129,108 +106,101 @@ export default function AdminLayout({ children }: { children: ReactNode }) {
-
-

پنل مدیریت

-

مدیریت بخش‌های سامانه

+
+
+

پنل مدیریت

+

مدیریت بخش‌های سامانه

+
+ + + + + + + بخش‌های پنل مدیریت + + + +
-
+
{children}
-
- -
); }