import React, { useEffect, useState } from 'react'; import { useNavigate } from 'react-router-dom'; import { apiCall } from '../utils/api'; import { User } from '../types'; const PendingApproval: React.FC = () => { const navigate = useNavigate(); const [user, setUser] = useState(null); const [loading, setLoading] = useState(true); useEffect(() => { // Get user data from localStorage const savedUser = localStorage.getItem('user'); if (savedUser) { setUser(JSON.parse(savedUser)); } setLoading(false); // Check status every 30 seconds const interval = setInterval(checkUserStatus, 30000); return () => clearInterval(interval); }, []); const checkUserStatus = async () => { try { const token = localStorage.getItem('authToken'); const { data: userData } = await apiCall('/auth/users/me', { headers: { 'Authorization': `Bearer ${token}`, }, }); if (userData) { setUser(userData); // If user is approved, redirect to dashboard if (userData.status === 'active') { window.location.href = '/'; } } } catch (error) { console.error('Error checking user status:', error); } }; const handleLogout = () => { localStorage.removeItem('authToken'); localStorage.removeItem('user'); window.location.href = '/'; }; if (loading) { return (

Loading...

); } return (
{/* Decorative element */}
{/* Icon */}
{/* Welcome message */}

Welcome, {user?.name?.split(' ')[0]}!

Your account is being reviewed

{/* Status message */}

Thank you for signing up! An administrator will review your account request shortly. We'll notify you once your access has been approved.

{/* Auto-refresh notice */}

This page checks for updates automatically

{/* Logout button */}
); }; export default PendingApproval;