import React, { useEffect } from 'react'; import { Link } from 'react-router-dom'; import { AccessTimeIcon, KeyboardArrowRightIcon, MenuBookIcon, PeopleIcon, SchoolIcon } from '@mui/icons-material'; import useTimetableStore from '../../stores/timetableStore'; import { useUser } from '../../contexts/UserContext'; const MyClassesPage: React.FC = () => { const { profile } = useUser(); const { myClasses, myClassesLoading, myClassesError, fetchMyClasses, } = useTimetableStore(); useEffect(() => { fetchMyClasses(); }, [fetchMyClasses]); const getRoleLabel = (role: string) => { switch (role) { case 'teacher': return { text: 'Teacher', color: 'bg-purple-100 text-purple-700' }; case 'student': return { text: 'Student', color: 'bg-green-100 text-green-700' }; case 'assistant': return { text: 'Assistant', color: 'bg-blue-100 text-blue-700' }; default: return { text: role, color: 'bg-gray-100 text-gray-700' }; } }; const getStatusLabel = (status: string) => { switch (status) { case 'active': return { text: 'Active', color: 'bg-green-100 text-green-700' }; case 'pending': return { text: 'Pending', color: 'bg-yellow-100 text-yellow-700' }; case 'completed': return { text: 'Completed', color: 'bg-gray-100 text-gray-700' }; case 'cancelled': return { text: 'Cancelled', color: 'bg-red-100 text-red-700' }; default: return { text: status, color: 'bg-gray-100 text-gray-700' }; } }; if (myClassesLoading) { return (
Error loading your classes: {myClassesError}
Manage your enrolled classes and teaching assignments
{classItem.class.code}
)}{classItem.class?.description || 'No description'}
{classItem.class.code}
)}{classItem.class?.description || 'No description'}
You are not enrolled in or teaching any classes yet.
Browse Available Classes