/* eslint-disable @next/next/no-img-element */ import Head from "next/head"; import {withIronSessionSsr} from "iron-session/next"; import {sessionOptions} from "@/lib/session"; import useUser from "@/hooks/useUser"; import {ToastContainer} from "react-toastify"; import Layout from "@/components/High/Layout"; import CodeGenerator from "./(admin)/CodeGenerator"; import ExamLoader from "./(admin)/ExamLoader"; import {Tab} from "@headlessui/react"; import clsx from "clsx"; import Lists from "./(admin)/Lists"; import BatchCodeGenerator from "./(admin)/BatchCodeGenerator"; import {shouldRedirectHome} from "@/utils/navigation.disabled"; import ExamGenerator from "./(admin)/ExamGenerator"; import BatchCreateUser from "./(admin)/BatchCreateUser"; import {checkAccess, getTypesOfUser} from "@/utils/permissions"; import usePermissions from "@/hooks/usePermissions"; import {useState} from "react"; import Modal from "@/components/Modal"; import IconCard from "@/dashboards/IconCard"; import {BsCode, BsCodeSquare, BsGearFill, BsPeopleFill, BsPersonFill} from "react-icons/bs"; import UserCreator from "./(admin)/UserCreator"; import CorporateGradingSystem from "./(admin)/CorporateGradingSystem"; import useGradingSystem from "@/hooks/useGrading"; import {CEFR_STEPS} from "@/resources/grading"; export const getServerSideProps = withIronSessionSsr(({req, res}) => { const user = req.session.user; if (!user || !user.isVerified) { return { redirect: { destination: "/login", permanent: false, }, }; } if (shouldRedirectHome(user) || !checkAccess(user, ["admin", "developer", "corporate", "teacher", "mastercorporate"])) { return { redirect: { destination: "/", permanent: false, }, }; } return { props: {user: req.session.user}, }; }, sessionOptions); export default function Admin() { const {user} = useUser({redirectTo: "/login"}); const {permissions} = usePermissions(user?.id || ""); const {gradingSystem, mutate} = useGradingSystem(); const [modalOpen, setModalOpen] = useState(); return ( <> Settings Panel | EnCoach {user && ( setModalOpen(undefined)}> setModalOpen(undefined)}> setModalOpen(undefined)}> setModalOpen(undefined)}> setModalOpen(undefined)}> mutate({user: user.id, steps})} />
{checkAccess(user, getTypesOfUser(["teacher"]), permissions, "viewCodes") && (
setModalOpen("createCode")} /> setModalOpen("batchCreateCode")} /> setModalOpen("createUser")} /> setModalOpen("batchCreateUser")} /> {checkAccess(user, ["admin", "corporate", "developer", "mastercorporate"]) && ( setModalOpen("gradingSystem")} /> )}
)}
)} ); }