{profile?.full_name}
Superuser Access
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:
{profile?.full_name}
Superuser Access