diff --git a/src/components/Medium/Timer.tsx b/src/components/Medium/Timer.tsx index 58ce4751..b75b6c64 100644 --- a/src/components/Medium/Timer.tsx +++ b/src/components/Medium/Timer.tsx @@ -1,80 +1,80 @@ import useExamStore from "@/stores/examStore"; -import { useEffect, useState } from "react"; -import { motion } from "framer-motion"; +import {useEffect, useState} from "react"; +import {motion} from "framer-motion"; import TimerEndedModal from "../TimerEndedModal"; import clsx from "clsx"; -import { BsStopwatch } from "react-icons/bs"; +import {BsStopwatch} from "react-icons/bs"; interface Props { - minTimer: number; - disableTimer?: boolean; - standalone?: boolean; + minTimer: number; + disableTimer?: boolean; + standalone?: boolean; } const Timer: React.FC = ({minTimer, disableTimer, standalone = false}) => { - const [timer, setTimer] = useState(minTimer * 60); - const [showModal, setShowModal] = useState(false); - const [warningMode, setWarningMode] = useState(false); + const [timer, setTimer] = useState(minTimer * 60); + const [showModal, setShowModal] = useState(false); + const [warningMode, setWarningMode] = useState(false); - const setHasExamEnded = useExamStore((state) => state.setHasExamEnded); - const { timeSpent } = useExamStore((state) => state); + const setHasExamEnded = useExamStore((state) => state.setHasExamEnded); + const {timeSpent} = useExamStore((state) => state); - useEffect(() => setTimer((prev) => prev - timeSpent), [timeSpent]); + useEffect(() => setTimer((prev) => prev - timeSpent), [timeSpent]); - useEffect(() => { - if (!disableTimer) { - const timerInterval = setInterval(() => setTimer((prev) => prev - 1), 1000); + useEffect(() => { + if (!disableTimer) { + const timerInterval = setInterval(() => setTimer((prev) => prev - 1), 1000); - return () => { - clearInterval(timerInterval); - }; - } - }, [disableTimer, minTimer]); + return () => { + clearInterval(timerInterval); + }; + } + }, [disableTimer, minTimer]); - useEffect(() => { - if (timer <= 0) setShowModal(true); - }, [timer]); + useEffect(() => { + if (timer <= 0) setShowModal(true); + }, [timer]); - useEffect(() => { - if (timer < 300 && !warningMode) setWarningMode(true); - }, [timer, warningMode]); + useEffect(() => { + if (timer < 300 && !warningMode) setWarningMode(true); + }, [timer, warningMode]); - return ( - <> - { - setHasExamEnded(true); - setShowModal(false); - }} - /> - - - - {timer > 0 && ( - <> - {Math.floor(timer / 60) - .toString(10) - .padStart(2, "0")} - : - {Math.floor(timer % 60) - .toString(10) - .padStart(2, "0")} - - )} - {timer <= 0 && <>00:00} - - - - ); -} + return ( + <> + { + setHasExamEnded(true); + setShowModal(false); + }} + /> + + + + {timer > 0 && ( + <> + {Math.floor(timer / 60) + .toString(10) + .padStart(2, "0")} + : + {Math.floor(timer % 60) + .toString(10) + .padStart(2, "0")} + + )} + {timer <= 0 && <>00:00} + + + + ); +}; export default Timer; diff --git a/src/dashboards/MasterCorporate.tsx b/src/dashboards/MasterCorporate.tsx index 9c2a0554..7770e8c1 100644 --- a/src/dashboards/MasterCorporate.tsx +++ b/src/dashboards/MasterCorporate.tsx @@ -437,7 +437,6 @@ export default function MasterCorporateDashboard({ user }: Props) { const { data: stats } = useFilterRecordsByUser(); const { users, reload } = useUsers(); - const { codes } = useCodes(user.id); const { groups } = useGroups({ admin: user.id, userType: user.type }); const { balance } = useUserBalance(); @@ -447,9 +446,9 @@ export default function MasterCorporateDashboard({ user }: Props) { ), ], [groups, user.id]); - const corporateUserGroups = [ + const corporateUserGroups = useMemo(() => [ ...new Set(groups.flatMap((g) => g.participants)), - ]; + ], [groups]) const { assignments,