import React, { useState, useEffect } from 'react'; import { useAuth } from './hooks.tsx'; import { useNavigate } from 'react-router'; import { Role, ClassStatus } from './components/Classroom/useClassroom.ts'; import { TeacherView } from './components/Classroom/TeacherView.tsx'; import { StudentView } from './components/Classroom/StudentView.tsx'; import { ClassroomLayout } from './components/Classroom/ClassroomLayout.tsx'; import { AuthLayout } from './components/Classroom/AuthLayout.tsx'; import { ClassroomProvider, useClassroomContext } from "./components/Classroom/ClassroomProvider.tsx"; import { ToastContainer } from 'react-toastify'; const RoleSelection = () => { const { setRole } = useClassroomContext(); return (

请选择您的角色

); }; const JoinClassSection = () => { const { joinClass } = useClassroomContext(); const [classId, setClassId] = useState(''); const handleJoinClass = async () => { if (!classId.trim()) return; await joinClass(classId); }; return (

加入课堂

setClassId(e.target.value)} placeholder="输入课堂ID" className="flex-1 px-3 py-2 border rounded" />
); }; const CreateClassSection = () => { const { classStatus, createClass, className, setClassName, role } = useClassroomContext(); const navigate = useNavigate(); const handleCreateClass = async () => { if (!className.trim()) return; const classId = await createClass(className); if (classId) { navigate(`/mobile/classroom/${classId}/${role === Role.Teacher ? 'teacher' : 'student'}`, { replace: true }); } }; if (classStatus !== ClassStatus.NOT_STARTED) return null; return (

创建新课堂

setClassName(e.target.value)} placeholder="输入课堂名称" className="flex-1 px-3 py-2 border rounded" />
); }; const Classroom = () => { const context = useClassroomContext(); const { role, classStatus, isLoggedIn, login } = context; const { user, isAuthenticated } = useAuth(); useEffect(() => { if (isAuthenticated && user && !isLoggedIn) { login(user.id.toString()); } }, [isAuthenticated, user, isLoggedIn]); if (!role) { return ( ); } if (!isLoggedIn) { return (

正在自动登录中...

); } if (role === Role.Teacher && !context.isJoinedClass) { return ( <> ); } if (role === Role.Student && !context.isJoinedClass) { return ( <> ); } if (classStatus === ClassStatus.ENDED) { return (

课堂已结束

感谢参与本次课堂

); } return ( {role === Role.Teacher ? : } ); }; export const ClassroomPage = () => { return ( <> ) }