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, login } = useClassroomContext();
const chooseRole = (role: Role) => {
setRole(role);
login(role);
}
return (
请选择您的角色
);
};
const JoinClassSection = () => {
const { joinClass } = useClassroomContext();
const [classId, setClassId] = useState('');
const handleJoinClass = async () => {
if (!classId.trim()) return;
await joinClass(classId);
};
return (
);
};
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 ? Role.Teacher : Role.Student}`, { replace: true });
}
};
if (classStatus !== ClassStatus.NOT_STARTED) return null;
return (
);
};
const Classroom = () => {
const context = useClassroomContext();
const { role, classStatus, isLoggedIn, login, classId, joinClass } = context;
useEffect(() => {
if (!isLoggedIn && role && classId) {
(async () => {
await login(role);
await joinClass(classId);
})()
}
}, [isLoggedIn, role , classId]);
if (!role) {
return (
);
}
if (!isLoggedIn) {
return (
);
}
if (role === Role.Teacher && !context.isJoinedClass && !classId) {
return (
<>
>
);
}
if (role === Role.Student && !context.isJoinedClass && !classId) {
return (
<>
>
);
}
if (classStatus === ClassStatus.ENDED) {
return (
);
}
return (
{/* {role === Role.Teacher ? : } */}
<>>
);
};
export const ClassroomPage = () => {
const { user } = useAuth();
return (
<>
>
)
}