"use client"; import { usePathname } from "next/navigation"; import dynamic from "next/dynamic"; import type { ReactNode } from "react"; // Lazy load NotificationProvider - only needed on dashboard pages // This saves ~5-10KB from initial bundle since it includes polling logic and API calls const NotificationProvider = dynamic( () => import("@/lib/notification-context").then(mod => ({ default: mod.NotificationProvider })), { ssr: false, loading: () => null } ); interface NotificationProviderWrapperProps { children: ReactNode; } export function NotificationProviderWrapper({ children }: NotificationProviderWrapperProps) { const pathname = usePathname(); // Only load NotificationProvider on dashboard pages (but not admin pages) const isDashboardPage = pathname?.includes("/dashboard") && !pathname?.includes("/dashboard/admin"); if (isDashboardPage) { return {children}; } // On non-dashboard pages, render children without provider return <>{children}; }