diff --git a/packages/admin/src/routes/_authenticated.tsx b/packages/admin/src/routes/_authenticated.tsx
index 8f4f00d..20948a0 100644
--- a/packages/admin/src/routes/_authenticated.tsx
+++ b/packages/admin/src/routes/_authenticated.tsx
@@ -8,7 +8,7 @@ import { myPermissionsOptions } from '@/api/rbac'
import { moduleListOptions } from '@/api/modules'
import { Avatar } from '@/components/shared/avatar-upload'
import { Button } from '@/components/ui/button'
-import { Users, UserRound, HelpCircle, Shield, UserCog, LogOut, User, Wrench, Package, ClipboardList, FolderOpen, KeyRound, Settings } from 'lucide-react'
+import { Users, UserRound, HelpCircle, Shield, UserCog, LogOut, User, Wrench, Package, ClipboardList, FolderOpen, KeyRound, Settings, PanelLeftClose, PanelLeft } from 'lucide-react'
export const Route = createFileRoute('/_authenticated')({
beforeLoad: () => {
@@ -60,23 +60,50 @@ function StoreLogo() {
return
}
- return
{storeData?.name ?? 'Forte'}
+ return {storeData?.name ?? 'LunarFront'}
}
-function NavLink({ to, icon, label }: { to: string; icon: React.ReactNode; label: string }) {
+function NavLink({ to, icon, label, collapsed }: { to: string; icon: React.ReactNode; label: string; collapsed?: boolean }) {
return (
{icon}
- {label}
+ {!collapsed && label}
)
}
+function NavGroup({ label, children, collapsed }: { label: string; children: React.ReactNode; collapsed?: boolean }) {
+ const [open, setOpen] = useState(true)
+
+ if (collapsed) return {children}
+ return (
+
+
+ {open &&
{children}
}
+
+ )
+}
+
function AuthenticatedLayout() {
const router = useRouter()
const user = useAuthStore((s) => s.user)
@@ -117,76 +144,92 @@ function AuthenticatedLayout() {
const canViewRepairs = !permissionsLoaded || hasPermission('repairs.view')
const canViewUsers = !permissionsLoaded || hasPermission('users.view')
+ const [collapsed, setCollapsed] = useState(false)
+
return (
-