From 4e3cfec9e82008022a691108dbd4cb31955360f4 Mon Sep 17 00:00:00 2001 From: Joao Correia Date: Wed, 26 Feb 2025 19:23:21 +0000 Subject: [PATCH] change to a single checkbox filter for all modules --- src/pages/assignments/creator/index.tsx | 135 ++++++++++-------------- 1 file changed, 55 insertions(+), 80 deletions(-) diff --git a/src/pages/assignments/creator/index.tsx b/src/pages/assignments/creator/index.tsx index ae4a0297..c56212c6 100644 --- a/src/pages/assignments/creator/index.tsx +++ b/src/pages/assignments/creator/index.tsx @@ -101,14 +101,6 @@ interface Props { const SIZE = 9; -type ExamApprovalFilterMap = { - writing: boolean; - reading: boolean; - listening: boolean; - speaking: boolean; - level: boolean; -}; - export default function AssignmentsPage({ user, users, @@ -151,20 +143,8 @@ export default function AssignmentsPage({ const [useRandomExams, setUseRandomExams] = useState(true); const [examIDs, setExamIDs] = useState<{ id: string; module: Module }[]>([]); - const [showExamsThatRequiredApproval, setShowExamsThatRequiredApproval] = useState({ - writing: true, - reading: true, - listening: true, - speaking: true, - level: true, - }); - const [showExamsThatDidntRequireApproval, setShowExamsThatDidntRequireApproval] = useState({ - writing: true, - reading: true, - listening: true, - speaking: true, - level: true, - }); + const [showApprovedExams, setShowApprovedExams] = useState(true); + const [showNonApprovedExams, setShowNonApprovedExams] = useState(true); const { exams } = useExams(); const router = useRouter(); @@ -524,69 +504,64 @@ export default function AssignmentsPage({ Random Exams {!useRandomExams && ( -
- {selectedModules.map((module) => ( -
-
+ <> + { + setShowApprovedExams((prev) => !prev) + }} + > + Show approved exams + + { + setShowNonApprovedExams((prev) => !prev) + }} + > + Show non-approved exams + +
+ {selectedModules.map((module) => ( +
- { - setShowExamsThatRequiredApproval(prev => ({ - ...prev, - [module]: !prev[module], - })) + e.module === module)?.id || - null, - label: - examIDs.find((e) => e.module === module)?.id || "", - }} - onChange={(value) => - value - ? setExamIDs((prev) => [ - ...prev.filter((x) => x.module !== module), - { id: value.value!, module }, - ]) - : setExamIDs((prev) => - prev.filter((x) => x.module !== module) - ) - } - options={exams - .filter((x) => - !x.isDiagnostic && - x.module === module && - ( - (x.requiresApproval && showExamsThatRequiredApproval[module]) || - (!x.requiresApproval && showExamsThatDidntRequireApproval[module]) - ) - ) - .map((x) => ({ value: x.id, label: x.id }))} - /> -
- ))} -
+ ))} +
+ )}
)}