import { useState, useEffect } from 'react'; import { FileText, LogOut, ChevronLeft, ChevronRight, User, RefreshCw, } from 'lucide-react'; import { useDispatch, useSelector } from 'react-redux'; import { useNavigate, Routes, Route, useParams, useLocation } from 'react-router-dom'; import { RootState } from '@/store'; import { logout } from '@/store/slices/authSlice'; import { toast } from 'sonner'; import { API } from '@/api/API'; import { formatDateTime } from '@/components/ui/utils'; import { ProspectiveApplicationDetails } from '@/features/onboarding/pages/ProspectiveApplicationDetails'; export function ProspectiveDashboardPage() { const dispatch = useDispatch(); const navigate = useNavigate(); const location = useLocation(); const { user } = useSelector((state: RootState) => state.auth); const [collapsed, setCollapsed] = useState(false); const [activeTab, setActiveTab] = useState('applicant'); const handleLogout = () => { dispatch(logout()); toast.info('Logged out successfully'); navigate('/'); }; return (
{/* Sidebar */}
{!collapsed ? (
Royal Enfield

Applicant Portal

) : (
Royal Enfield
)}
{!collapsed && (
{user?.name?.charAt(0) || 'A'}

{user?.name || 'Applicant'}

{user?.role || 'Prospective'}

)}
{/* Main Content */}

{location.pathname.includes('/application/') ? 'Application details' : 'Applicant management'}

{location.pathname.includes('/application/') ? 'Review and update statutory information and required documents for this application. Progress is coordinated by Royal Enfield after you submit.' : 'Start or continue your dealership application, upload documents, and use links we email you (for example the questionnaire).'}

{user?.name || 'Applicant'}

{user?.role || 'User'}

} /> } />
); } function ProspectiveApplicationList() { const navigate = useNavigate(); const { user } = useSelector((state: RootState) => state.auth); const [applications, setApplications] = useState([]); useEffect(() => { if (user?.id) { fetchApplications(); } }, [user?.id]); const fetchApplications = async () => { try { const response: any = await API.getApplications(); if (response.data?.success) { setApplications(response.data.data); } } catch (error) { console.error('Failed to fetch applications', error); } }; return (

My Applications

Track and manage your dealership applications

{applications.length === 0 ? (

No applications found

You haven't submitted any dealership applications yet.

) : (
{applications.map((app) => (
navigate(`/prospective-dashboard/application/${app.id}`)} >

{app.applicationId}

{app.city}, {app.state}

Applied {formatDateTime(app.createdAt)}
))}
)}
); } function ProspectiveApplicationDetailsWrapper() { const { id } = useParams<{ id: string }>(); const navigate = useNavigate(); if (!id) return null; return (
navigate('/prospective-dashboard')} />
); }