import React from "react"; import { Link, useNavigate, useLocation, Outlet } from "react-router-dom"; import { supabase } from "../../lib/supabaseClient"; import useAuthStore from "../../store/authStore"; import { ShieldCheck, LayoutDashboard, Users, Building2, Bell, LogOut, ExternalLink, Search, UserCircle, Bug, Settings, Activity } from "lucide-react"; /** * MasterAdminLayout — Professional sidebar-based layout for platform oversight. */ function MasterAdminLayout() { const { profile, logout } = useAuthStore(); const navigate = useNavigate(); const location = useLocation(); const handleLogout = async () => { await logout(); navigate("/master-admin-login"); }; const [pendingCount, setPendingCount] = React.useState(0); React.useEffect(() => { const fetchCount = async () => { const { count } = await supabase .from('admin_requests') .select('*', { count: 'exact', head: true }) .eq('status', 'pending'); setPendingCount(count || 0); }; fetchCount(); const sub = supabase.channel('pending_badge') .on('postgres_changes', { event: '*', schema: 'public', table: 'admin_requests' }, () => fetchCount()) .subscribe(); return () => supabase.removeChannel(sub); }, []); const navItems = [ { path: "/master-admin/dashboard", icon: , label: "Overview" }, { path: "/master-admin/admin-requests", icon: , label: "Pending Requests", count: pendingCount }, { path: "/master-admin/companies", icon: , label: "All Companies" }, { path: "/master-admin/all-admins", icon: , label: "All Admins" }, { path: "/master-admin/bug-reports", icon: , label: "Bug Radar" }, ]; return (
{/* Ambient Background Glows */}
{/* Sidebar */} {/* Main Content Area */}
{/* Top Bar */}
console.log("Global search:", e.target.value)} />

{profile?.full_name}

Superuser Access

{/* Page Content */}
); } export default MasterAdminLayout;