/* eslint-disable @next/next/no-img-element */ import Head from "next/head"; import SingleDatasetChart from "@/components/UserResultChart"; import Navbar from "@/components/Navbar"; import ProfileCard from "@/components/ProfileCard"; import {withIronSessionSsr} from "iron-session/next"; import {sessionOptions} from "@/lib/session"; import {User} from "@/interfaces/user"; import {useEffect, useState} from "react"; import useStats from "@/hooks/useStats"; import {averageScore, formatModuleTotalStats, totalExams} from "@/utils/stats"; import {Divider} from "primereact/divider"; import useUser from "@/hooks/useUser"; export const getServerSideProps = withIronSessionSsr(({req, res}) => { const user = req.session.user; if (!user) { res.setHeader("location", "/login"); res.statusCode = 302; res.end(); return { props: { user: null, }, }; } return { props: {user: req.session.user}, }; }, sessionOptions); export default function Home() { const [showEndExam, setShowEndExam] = useState(false); const [windowWidth, setWindowWidth] = useState(0); const {stats, isLoading} = useStats(); const {user} = useUser({redirectTo: "/login"}); useEffect(() => setShowEndExam(window.innerWidth <= 960), []); useEffect(() => setWindowWidth(window.innerWidth), []); return ( <> IELTS GPT | Muscat Training Institute {user && (
{windowWidth <= 960 && }
Statistics {!isLoading && stats && (
Exams: {totalExams(stats)} Exercises: {stats.length} Average Score: {averageScore(stats)}%
)}
{!isLoading && stats && (
)}
)} ); }