import React, { useState, useEffect, useCallback } from 'react'; import { useNavigate } from 'react-router-dom'; import { api } from '@/api'; import AppNavigation from '@/components/layout/Sidebar'; import OnboardingWizard from '@/components/admin/OnboardingWizard'; import EmailNotifCard from '@/components/admin/EmailNotifCard'; import LoginModeCard from '@/components/admin/LoginModeCard'; import AuthMethodsCard from '@/components/admin/AuthMethodsCard'; import UsersTable from '@/components/admin/UsersTable'; import AddUserCard from '@/components/admin/AddUserCard'; import BackupManagementCard from '@/components/admin/BackupManagementCard'; import CleanupPanel from '@/components/admin/CleanupPanel'; export default function AdminPage() { const navigate = useNavigate(); const [me, setMe] = useState(null); const [hasUsers, setHasUsers] = useState(null); const [users, setUsers] = useState([]); const loadMe = useCallback(async () => { try { const d = await api.me(); setMe(d.user); } catch { navigate('/login', { replace: true }); } }, [navigate]); const loadUsers = useCallback(async () => { try { const d = await api.adminUsers(); setUsers(d.users || d); } catch {} }, []); const loadHasUsers = useCallback(async () => { try { const d = await api.hasUsers(); setHasUsers(d.has_users); if (d.has_users) loadUsers(); } catch {} }, [loadUsers]); useEffect(() => { loadMe(); loadHasUsers(); }, [loadMe, loadHasUsers]); const handleOnboardingComplete = () => { setHasUsers(true); loadUsers(); }; if (hasUsers === null) { return (
Loading…
); } return (
{!hasUsers ? ( ) : (
)}
); }