From b7940087b5c74b2145cae4bcc34d67a1b886fca4 Mon Sep 17 00:00:00 2001 From: Tiago Ribeiro Date: Tue, 27 Aug 2024 11:14:29 +0100 Subject: [PATCH] ENCOA-109: Made the modal disappear when a user is created --- src/pages/(admin)/BatchCodeGenerator.tsx | 4 +++- src/pages/(admin)/BatchCreateUser.tsx | 3 ++- src/pages/(admin)/CodeGenerator.tsx | 2 +- src/pages/(admin)/UserCreator.tsx | 3 ++- src/pages/settings.tsx | 13 ++++++++----- 5 files changed, 16 insertions(+), 9 deletions(-) diff --git a/src/pages/(admin)/BatchCodeGenerator.tsx b/src/pages/(admin)/BatchCodeGenerator.tsx index 313264eb..ac6764b4 100644 --- a/src/pages/(admin)/BatchCodeGenerator.tsx +++ b/src/pages/(admin)/BatchCodeGenerator.tsx @@ -55,7 +55,7 @@ const USER_TYPE_PERMISSIONS: { }, }; -export default function BatchCodeGenerator({user}: {user: User}) { +export default function BatchCodeGenerator({user, onFinish}: {user: User; onFinish: () => void}) { const [infos, setInfos] = useState<{email: string; name: string; passport_id: string}[]>([]); const [isLoading, setIsLoading] = useState(false); const [expiryDate, setExpiryDate] = useState( @@ -165,6 +165,8 @@ export default function BatchCodeGenerator({user}: {user: User}) { )} codes and they have been notified by e-mail!`, {toastId: "success"}, ); + + onFinish(); return; } diff --git a/src/pages/(admin)/BatchCreateUser.tsx b/src/pages/(admin)/BatchCreateUser.tsx index 4453bead..bf08962a 100644 --- a/src/pages/(admin)/BatchCreateUser.tsx +++ b/src/pages/(admin)/BatchCreateUser.tsx @@ -61,7 +61,7 @@ const USER_TYPE_PERMISSIONS: { }, }; -export default function BatchCreateUser({user}: {user: User}) { +export default function BatchCreateUser({user, onFinish}: {user: User; onFinish: () => void}) { const [infos, setInfos] = useState< { email: string; @@ -159,6 +159,7 @@ export default function BatchCreateUser({user}: {user: User}) { try { for (const newUser of newUsers) await axios.post("/api/make_user", {...newUser, type, expiryDate}); toast.success(`Successfully added ${newUsers.length} user(s)!`); + onFinish(); } catch { toast.error("Something went wrong, please try again later!"); } finally { diff --git a/src/pages/(admin)/CodeGenerator.tsx b/src/pages/(admin)/CodeGenerator.tsx index c8fbcfe3..cbd1b5fb 100644 --- a/src/pages/(admin)/CodeGenerator.tsx +++ b/src/pages/(admin)/CodeGenerator.tsx @@ -48,7 +48,7 @@ const USER_TYPE_PERMISSIONS: { }, }; -export default function CodeGenerator({user}: {user: User}) { +export default function CodeGenerator({user, onFinish}: {user: User; onFinish: () => void}) { const [generatedCode, setGeneratedCode] = useState(); const [expiryDate, setExpiryDate] = useState( user?.subscriptionExpirationDate ? moment(user.subscriptionExpirationDate).toDate() : null, diff --git a/src/pages/(admin)/UserCreator.tsx b/src/pages/(admin)/UserCreator.tsx index a0b955f5..a5a61db4 100644 --- a/src/pages/(admin)/UserCreator.tsx +++ b/src/pages/(admin)/UserCreator.tsx @@ -54,7 +54,7 @@ const USER_TYPE_PERMISSIONS: { }, }; -export default function UserCreator({user}: {user: User}) { +export default function UserCreator({user, onFinish}: {user: User; onFinish: () => void}) { const [name, setName] = useState(); const [email, setEmail] = useState(); const [phone, setPhone] = useState(); @@ -118,6 +118,7 @@ export default function UserCreator({user}: {user: User}) { .post("/api/make_user", body) .then(() => { toast.success("That user has been created!"); + onFinish(); setName(""); setEmail(""); diff --git a/src/pages/settings.tsx b/src/pages/settings.tsx index d1918448..0276d94d 100644 --- a/src/pages/settings.tsx +++ b/src/pages/settings.tsx @@ -72,22 +72,25 @@ export default function Admin() { {user && ( setModalOpen(undefined)}> - + setModalOpen(undefined)} /> setModalOpen(undefined)}> - + setModalOpen(undefined)} /> setModalOpen(undefined)}> - + setModalOpen(undefined)} /> setModalOpen(undefined)}> - + setModalOpen(undefined)} /> setModalOpen(undefined)}> mutate({user: user.id, steps})} + mutate={(steps) => { + mutate({user: user.id, steps}); + setModalOpen(undefined); + }} />