/* eslint-disable @next/next/no-img-element */ import Head from "next/head"; import Navbar from "@/components/Navbar"; import {BsFileEarmarkText, BsPencil, BsStar, BsBook, BsHeadphones, BsPen, BsMegaphone} from "react-icons/bs"; import {withIronSessionSsr} from "iron-session/next"; import {sessionOptions} from "@/lib/session"; import {useEffect, useState} from "react"; import {averageScore, groupBySession, totalExams} from "@/utils/stats"; import useUser from "@/hooks/useUser"; import Diagnostic from "@/components/Diagnostic"; import {ToastContainer} from "react-toastify"; import {capitalize} from "lodash"; import {Module} from "@/interfaces"; import ProgressBar from "@/components/Low/ProgressBar"; import Layout from "@/components/High/Layout"; import {calculateAverageLevel} from "@/utils/score"; import axios from "axios"; import DemographicInformationInput from "@/components/DemographicInformationInput"; import moment from "moment"; import Link from "next/link"; import {MODULE_ARRAY} from "@/utils/moduleUtils"; import ProfileSummary from "@/components/ProfileSummary"; import StudentDashboard from "@/dashboards/Student"; import AdminDashboard from "@/dashboards/Admin"; import CorporateDashboard from "@/dashboards/Corporate"; import TeacherDashboard from "@/dashboards/Teacher"; import AgentDashboard from "@/dashboards/Agent"; import MasterCorporateDashboard from "@/dashboards/MasterCorporate"; import PaymentDue from "./(status)/PaymentDue"; import {useRouter} from "next/router"; import {PayPalScriptProvider} from "@paypal/react-paypal-js"; import {CorporateUser, Group, MasterCorporateUser, Type, User, userTypes} from "@/interfaces/user"; import Select from "react-select"; import {USER_TYPE_LABELS} from "@/resources/user"; import {checkAccess, getTypesOfUser} from "@/utils/permissions"; import {shouldRedirectHome} from "@/utils/navigation.disabled"; import useGroups from "@/hooks/useGroups"; import useUsers from "@/hooks/useUsers"; import {getUserName} from "@/utils/users"; import {getParticipantGroups, getUserGroups} from "@/utils/groups.be"; import {getUsers} from "@/utils/users.be"; export const getServerSideProps = withIronSessionSsr(async ({req, res}) => { const user = req.session.user; if (!user || !user.isVerified) { return { redirect: { destination: "/login", permanent: false, }, }; } if (shouldRedirectHome(user)) { return { redirect: { destination: "/", permanent: false, }, }; } const groups = await getParticipantGroups(user.id); const users = await getUsers(); return { props: {user, groups, users}, }; }, sessionOptions); interface Props { user: User; groups: Group[]; users: User[]; } export default function Home({user, groups, users}: Props) { return ( <> EnCoach {user && (
{groups .filter((x) => x.participants.includes(user.id)) .map((group) => (
Group: {group.name} Admin: {getUserName(users.find((x) => x.id === group.admin))} Participants: {group.participants.map((x) => getUserName(users.find((u) => u.id === x))).join(", ")}
))}
)} ); }