"use client"; import Link from "next/link"; import { useMemo, useState } from "react"; import { usePathname } from "next/navigation"; import { Search, ShieldCheck } from "lucide-react"; import { useSuperAdminSession } from "@/components/auth/session-context"; import { Input } from "@/components/ui/input"; import { dashboardNav } from "@/lib/navigation"; import { matchesPermissions } from "@/lib/permissions"; import { cn } from "@/lib/utils"; export function DashboardSidebar() { const pathname = usePathname(); const [search, setSearch] = useState(""); const { permissions } = useSuperAdminSession(); const accessibleNav = useMemo( () => dashboardNav.filter((item) => matchesPermissions(permissions, item.requiredPermissions, item.permissionMode), ), [permissions], ); const filteredNav = useMemo(() => { const needle = search.trim().toLowerCase(); if (!needle) return accessibleNav; return accessibleNav.filter((item) => item.label.toLowerCase().includes(needle)); }, [accessibleNav, search]); return ( ); }