From b3b804fc11c1d7405d81eee807bb01a91040beb0 Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Thu, 31 Aug 2023 20:39:38 +0100 Subject: [PATCH] - Prevent the CTRL+F on Reading; - Made the Listening audio appear on exercises; --- src/components/Exercises/WriteBlanks.tsx | 6 +++--- src/exams/Listening.tsx | 2 +- src/exams/Reading.tsx | 14 ++++++++++++++ src/pages/api/exam/[module]/index.ts | 1 + 4 files changed, 19 insertions(+), 4 deletions(-) diff --git a/src/components/Exercises/WriteBlanks.tsx b/src/components/Exercises/WriteBlanks.tsx index df3df86f..189c08ea 100644 --- a/src/components/Exercises/WriteBlanks.tsx +++ b/src/components/Exercises/WriteBlanks.tsx @@ -36,7 +36,7 @@ function Blank({ return ( setUserInput(e.target.value)} onBlur={() => setUserSolution(userInput)} @@ -91,10 +91,10 @@ export default function WriteBlanks({id, prompt, type, maxWords, solutions, user
{prompt.split("\\n").map((line, index) => ( - + {line}
-
+
))} diff --git a/src/exams/Listening.tsx b/src/exams/Listening.tsx index 95d07f82..fdcfa3a6 100644 --- a/src/exams/Listening.tsx +++ b/src/exams/Listening.tsx @@ -123,7 +123,7 @@ export default function Listening({exam, showSolutions = false, onFinish}: Props totalExercises={exam.exercises.length} disableTimer={showSolutions} /> - {exerciseIndex === -1 && renderAudioPlayer()} + {renderAudioPlayer()} {exerciseIndex > -1 && exerciseIndex < exam.exercises.length && !showSolutions && diff --git a/src/exams/Reading.tsx b/src/exams/Reading.tsx index 7e7d7442..77eec20c 100644 --- a/src/exams/Reading.tsx +++ b/src/exams/Reading.tsx @@ -87,6 +87,20 @@ export default function Reading({exam, showSolutions = false, onFinish}: Props) const [hasExamEnded, setHasExamEnded] = useExamStore((state) => [state.hasExamEnded, state.setHasExamEnded]); + useEffect(() => { + const listener = (e: KeyboardEvent) => { + if (e.key === "F3" || ((e.ctrlKey || e.metaKey) && e.key === "f")) { + e.preventDefault(); + } + }; + + document.addEventListener("keydown", listener); + + return () => { + document.removeEventListener("keydown", listener); + }; + }, []); + useEffect(() => { if (hasExamEnded && exerciseIndex === -1) { setExerciseIndex((prev) => prev + 1); diff --git a/src/pages/api/exam/[module]/index.ts b/src/pages/api/exam/[module]/index.ts index 11e3a419..a45876d9 100644 --- a/src/pages/api/exam/[module]/index.ts +++ b/src/pages/api/exam/[module]/index.ts @@ -27,6 +27,7 @@ async function handler(req: NextApiRequest, res: NextApiResponse) { snapshot.docs.map((doc) => ({ id: doc.id, ...doc.data(), + module, })), ), );