From facac33a893b67cd83c6386b9ad8b14658956205 Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Mon, 27 Nov 2023 11:22:41 +0000 Subject: [PATCH] More housekeeping --- src/pages/(admin)/BatchCodeGenerator.tsx | 13 ++++++++++--- src/pages/(admin)/CodeGenerator.tsx | 4 +++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/pages/(admin)/BatchCodeGenerator.tsx b/src/pages/(admin)/BatchCodeGenerator.tsx index ce83ea32..3bdb8cb9 100644 --- a/src/pages/(admin)/BatchCodeGenerator.tsx +++ b/src/pages/(admin)/BatchCodeGenerator.tsx @@ -1,6 +1,7 @@ import Button from "@/components/Low/Button"; import Checkbox from "@/components/Low/Checkbox"; import {PERMISSIONS} from "@/constants/userPermissions"; +import useUsers from "@/hooks/useUsers"; import {Type, User} from "@/interfaces/user"; import {USER_TYPE_LABELS} from "@/resources/user"; import axios from "axios"; @@ -20,6 +21,8 @@ export default function BatchCodeGenerator({user}: {user: User}) { const [isExpiryDateEnabled, setIsExpiryDateEnabled] = useState(true); const [type, setType] = useState("student"); + const {users} = useUsers(); + const {openFilePicker, filesContent} = useFilePicker({ accept: ".txt", multiple: false, @@ -41,15 +44,17 @@ export default function BatchCodeGenerator({user}: {user: User}) { const emails = file.content .split("\n") .map((x) => x.trim()) - .filter((x) => new RegExp(/^[a-zA-Z0-9]+(?:\.[a-zA-Z0-9]+)*@[a-zA-Z0-9]+(?:\.[a-zA-Z0-9]+)*$/).test(x)); + .filter((x) => new RegExp(/^[a-zA-Z0-9]+(?:\.[a-zA-Z0-9]+)*@[a-zA-Z0-9]+(?:\.[a-zA-Z0-9]+)*$/).test(x)) + .filter((x) => !users.map((u) => u.email).includes(x)); if (emails.length === 0) { - toast.error("Please upload a .txt file containing e-mails, one per line!"); + toast.error("Please upload a .txt file containing e-mails, one per line! All already registered e-mails have also been ignored!"); return; } setEmails([...new Set(emails)]); } + // eslint-disable-next-line react-hooks/exhaustive-deps }, [filesContent]); const generateCode = (type: Type) => { @@ -122,7 +127,9 @@ export default function BatchCodeGenerator({user}: {user: User}) { ))} )} - + ); } diff --git a/src/pages/(admin)/CodeGenerator.tsx b/src/pages/(admin)/CodeGenerator.tsx index 1911d19b..ba7fb178 100644 --- a/src/pages/(admin)/CodeGenerator.tsx +++ b/src/pages/(admin)/CodeGenerator.tsx @@ -93,7 +93,9 @@ export default function CodeGenerator({user}: {user: User}) { )} )} - +