Fixed a typo in the records
This commit is contained in:
@@ -1,51 +1,51 @@
|
||||
import {useEffect, useState} from "react";
|
||||
import {useRouter} from "next/router";
|
||||
import { useEffect, useState } from "react";
|
||||
import { useRouter } from "next/router";
|
||||
import axios from "axios";
|
||||
import {Tab} from "@headlessui/react";
|
||||
import {AiOutlineFileSearch} from "react-icons/ai";
|
||||
import {MdOutlinePlaylistAddCheckCircle, MdOutlineSelfImprovement} from "react-icons/md";
|
||||
import {BsChatLeftDots} from "react-icons/bs";
|
||||
import { Tab } from "@headlessui/react";
|
||||
import { AiOutlineFileSearch } from "react-icons/ai";
|
||||
import { MdOutlinePlaylistAddCheckCircle, MdOutlineSelfImprovement } from "react-icons/md";
|
||||
import { BsChatLeftDots } from "react-icons/bs";
|
||||
import Button from "@/components/Low/Button";
|
||||
import clsx from "clsx";
|
||||
import Exercise from "@/training/Exercise";
|
||||
import TrainingScore from "@/training/TrainingScore";
|
||||
import {ITrainingContent, ITrainingTip} from "@/training/TrainingInterfaces";
|
||||
import { ITrainingContent, ITrainingTip } from "@/training/TrainingInterfaces";
|
||||
import formatTip from "@/training/FormatTip";
|
||||
import {Stat, User} from "@/interfaces/user";
|
||||
import { Stat, User } from "@/interfaces/user";
|
||||
import Head from "next/head";
|
||||
import Layout from "@/components/High/Layout";
|
||||
import {ToastContainer} from "react-toastify";
|
||||
import {withIronSessionSsr} from "iron-session/next";
|
||||
import {shouldRedirectHome} from "@/utils/navigation.disabled";
|
||||
import {sessionOptions} from "@/lib/session";
|
||||
import { ToastContainer } from "react-toastify";
|
||||
import { withIronSessionSsr } from "iron-session/next";
|
||||
import { shouldRedirectHome } from "@/utils/navigation.disabled";
|
||||
import { sessionOptions } from "@/lib/session";
|
||||
import qs from "qs";
|
||||
import StatsGridItem from "@/components/Medium/StatGridItem";
|
||||
import useExamStore from "@/stores/examStore";
|
||||
import {usePDFDownload} from "@/hooks/usePDFDownload";
|
||||
import { usePDFDownload } from "@/hooks/usePDFDownload";
|
||||
import useAssignments from "@/hooks/useAssignments";
|
||||
import useUsers from "@/hooks/useUsers";
|
||||
import Dropdown from "@/components/Dropdown";
|
||||
import InfiniteCarousel from "@/components/InfiniteCarousel";
|
||||
import {LuExternalLink} from "react-icons/lu";
|
||||
import {uniqBy} from "lodash";
|
||||
import {getExamById} from "@/utils/exams";
|
||||
import {convertToUserSolutions} from "@/utils/stats";
|
||||
import {sortByModule} from "@/utils/moduleUtils";
|
||||
import { LuExternalLink } from "react-icons/lu";
|
||||
import { uniqBy } from "lodash";
|
||||
import { getExamById } from "@/utils/exams";
|
||||
import { convertToUserSolutions } from "@/utils/stats";
|
||||
import { sortByModule } from "@/utils/moduleUtils";
|
||||
import { requestUser } from "@/utils/api";
|
||||
import { redirect, serialize } from "@/utils";
|
||||
|
||||
export const getServerSideProps = withIronSessionSsr(async ({req, res}) => {
|
||||
export const getServerSideProps = withIronSessionSsr(async ({ req, res }) => {
|
||||
const user = await requestUser(req, res)
|
||||
if (!user) return redirect("/login")
|
||||
|
||||
if (shouldRedirectHome(user)) redirect("/")
|
||||
|
||||
return {
|
||||
props: serialize({user}),
|
||||
props: serialize({ user }),
|
||||
};
|
||||
}, sessionOptions);
|
||||
|
||||
const TrainingContent: React.FC<{user: User}> = ({user}) => {
|
||||
const TrainingContent: React.FC<{ user: User }> = ({ user }) => {
|
||||
// Record stuff
|
||||
const setExams = useExamStore((state) => state.setExams);
|
||||
const setShowSolutions = useExamStore((state) => state.setShowSolutions);
|
||||
@@ -59,11 +59,11 @@ const TrainingContent: React.FC<{user: User}> = ({user}) => {
|
||||
const [loading, setLoading] = useState(true);
|
||||
const [trainingTips, setTrainingTips] = useState<ITrainingTip[]>([]);
|
||||
const [currentTipIndex, setCurrentTipIndex] = useState(0);
|
||||
const {assignments} = useAssignments({});
|
||||
const {users} = useUsers();
|
||||
const { assignments } = useAssignments({});
|
||||
const { users } = useUsers();
|
||||
|
||||
const router = useRouter();
|
||||
const {id} = router.query;
|
||||
const { id } = router.query;
|
||||
|
||||
useEffect(() => {
|
||||
const fetchTrainingContent = async () => {
|
||||
@@ -84,14 +84,14 @@ const TrainingContent: React.FC<{user: User}> = ({user}) => {
|
||||
return statResponse.data;
|
||||
}),
|
||||
);
|
||||
return {...exam, stats};
|
||||
return { ...exam, stats };
|
||||
}),
|
||||
),
|
||||
};
|
||||
|
||||
const tips = await axios.get<ITrainingTip[]>("/api/training/walkthrough", {
|
||||
params: {ids: trainingContent.tip_ids},
|
||||
paramsSerializer: (params) => qs.stringify(params, {arrayFormat: "repeat"}),
|
||||
params: { ids: trainingContent.tip_ids },
|
||||
paramsSerializer: (params) => qs.stringify(params, { arrayFormat: "repeat" }),
|
||||
});
|
||||
|
||||
const processedTips = tips.data.map(formatTip);
|
||||
@@ -121,7 +121,7 @@ const TrainingContent: React.FC<{user: User}> = ({user}) => {
|
||||
return getExamById(stat.module, stat.exam);
|
||||
});
|
||||
|
||||
const {timeSpent, inactivity} = stats[0];
|
||||
const { timeSpent, inactivity } = stats[0];
|
||||
|
||||
Promise.all(examPromises).then((exams) => {
|
||||
if (exams.every((x) => !!x)) {
|
||||
@@ -177,6 +177,7 @@ const TrainingContent: React.FC<{user: User}> = ({user}) => {
|
||||
{trainingContent.exams.map((exam, examIndex) => (
|
||||
<StatsGridItem
|
||||
key={`exam-${examIndex}`}
|
||||
gradingSystems={[]}
|
||||
width="380px"
|
||||
height="150px"
|
||||
examNumber={examIndex + 1}
|
||||
@@ -252,7 +253,7 @@ const TrainingContent: React.FC<{user: User}> = ({user}) => {
|
||||
{trainingContent.weak_areas.map((x, index) => (
|
||||
<Tab
|
||||
key={index}
|
||||
className={({selected}) =>
|
||||
className={({ selected }) =>
|
||||
clsx(
|
||||
"text-[#53B2F9] pb-2 border-b-2",
|
||||
"focus:outline-none",
|
||||
|
||||
Reference in New Issue
Block a user