import React from 'react'; import { useNavigate } from 'react-router-dom'; import { Alert, Box, Button, Chip, Container, Grid, Paper, Stack, Typography } from '@mui/material'; import { useAuth } from '../../contexts/AuthContext'; import CheckCircleIcon from '@mui/icons-material/CheckCircle'; import WarningIcon from '@mui/icons-material/Warning'; import { useUser } from '../../contexts/UserContext'; const DashboardPage: React.FC = () => { const navigate = useNavigate(); const { user: authUser, bootstrapData } = useAuth(); const { profile, loading } = useUser(); const displayName = profile?.display_name || authUser?.display_name || authUser?.username || 'Member'; const emailAddress = profile?.email || authUser?.email || ''; const userType = profile?.user_type || authUser?.user_type || ''; const activeInstitute = bootstrapData?.active_institute; const activeMembership = bootstrapData?.memberships?.find( (m) => m.institute_id === activeInstitute?.id && m.is_active ); const schoolName = activeMembership?.institute?.name; const onboarding = bootstrapData?.onboarding; const calendarOk = bootstrapData?.calendar_status?.available && !bootstrapData?.calendar_status?.needs_setup; const timetableOk = bootstrapData?.timetable_status?.available && !bootstrapData?.timetable_status?.needs_setup; return ( Welcome back{displayName ? `, ${displayName}` : ''}! This is your starting point inside ClassroomCopilot. We keep things simple here so you can decide what to explore next. Account overview Signed in as {emailAddress || 'No email on file'} {userType && ( Role: {userType} )} {loading ? 'Checking profile details...' : 'Profile ready'} Quick actions {/* Bootstrap Status Section */} {bootstrapData && ( Your school Institute {schoolName || 'No school assigned'} {activeInstitute?.membership_role && ( )} Status: {bootstrapData.school_status} System status {calendarOk ? : } Calendar: {calendarOk ? 'Ready' : 'Needs setup'} {timetableOk ? : } Timetable: {timetableOk ? 'Ready' : 'Needs setup'} {bootstrapData?.graph_status?.available ? : } Graph projection: {bootstrapData?.graph_status?.projection_state || 'unknown'} {onboarding && onboarding.next_step !== 'complete' && ( {onboarding.message} Next step: {onboarding.next_step.replace(/_/g, ' ')} )} )} ); }; export default DashboardPage;