"use client"; import Link from "next/link"; import { usePathname } from "next/navigation"; import { forwardRef } from "react"; import { Home, ListPlus, ShoppingBag, Sparkles, UserRound, } from "lucide-react"; import { cn } from "@/lib/utils"; import { appNavItems, routes, type NavItem } from "@/lib/routes"; import { prefetchHabitsTabData, prefetchQuizTabData, } from "@/lib/app-tab-data-cache"; const gridColsClass = { 1: "grid-cols-1", 2: "grid-cols-2", 3: "grid-cols-3", 4: "grid-cols-4", 5: "grid-cols-5", 6: "grid-cols-6", } as const; const navIcons = { [routes.avatar]: Home, [routes.habits]: ListPlus, [routes.dailyQuiz]: Sparkles, [routes.shop]: ShoppingBag, [routes.profile]: UserRound, } as const; const prefetchByRoute: Partial void>> = { [routes.habits]: () => { void prefetchHabitsTabData(); }, [routes.dailyQuiz]: () => { void prefetchQuizTabData(); }, }; type AppNavProps = { items?: readonly NavItem[]; }; export const AppNav = forwardRef(function AppNav( { items = appNavItems }, ref, ) { const pathname = usePathname(); const columnCount = Math.min( items.length, 6, ) as keyof typeof gridColsClass; return ( ); });