From 497e7c078760036f552396ca2e8fd0cf2affe987 Mon Sep 17 00:00:00 2001 From: Armin Talaie Date: Mon, 30 Dec 2024 16:59:31 -0800 Subject: [PATCH] fixed override bug --- src/app/portal/admin/forms/[id]/support/page.tsx | 1 + src/app/portal/forms/actions.ts | 8 ++++++-- src/components/forms/applications/applicationForm.tsx | 9 +++++---- src/components/forms/applications/beforeSubmitTab.tsx | 3 +++ src/lib/utils/forms/helpers.ts | 3 ++- 5 files changed, 17 insertions(+), 7 deletions(-) diff --git a/src/app/portal/admin/forms/[id]/support/page.tsx b/src/app/portal/admin/forms/[id]/support/page.tsx index 4e81ee67..4e0d753a 100644 --- a/src/app/portal/admin/forms/[id]/support/page.tsx +++ b/src/app/portal/admin/forms/[id]/support/page.tsx @@ -112,6 +112,7 @@ export default function SubmissionAsUser() {
s.email === search).user_id} application={app as unknown as Application} applicationForm={form as unknown as Form} /> diff --git a/src/app/portal/forms/actions.ts b/src/app/portal/forms/actions.ts index be9372a0..9e91c407 100644 --- a/src/app/portal/forms/actions.ts +++ b/src/app/portal/forms/actions.ts @@ -132,20 +132,24 @@ export async function submitApplication({ export async function updateApplication({ application, formId, + otherUser, }: { application: Obj; formId: bigint; + otherUser?: string; }) { const supabase = createClient(); + const userId = otherUser || (await supabase.auth.getUser()).data?.user?.id; const { data, error } = await supabase.auth.getUser(); if (!data.user || error) { return null; } + const res = await db.submissions.findUnique({ where: { user_id_form_id: { form_id: formId, - user_id: data.user.id, + user_id: userId, }, }, }); @@ -155,7 +159,7 @@ export async function updateApplication({ where: { user_id_form_id: { form_id: formId, - user_id: data.user.id, + user_id: userId, }, }, data: { diff --git a/src/components/forms/applications/applicationForm.tsx b/src/components/forms/applications/applicationForm.tsx index 2e6473db..a2fa983c 100644 --- a/src/components/forms/applications/applicationForm.tsx +++ b/src/components/forms/applications/applicationForm.tsx @@ -25,9 +25,11 @@ type FormContext = { const formContext = createContext({} as FormContext); export default function ApplicationForm({ + userOverride, application, applicationForm, }: { + userOverride?: string; application: Application; applicationForm: Form; }) { @@ -85,6 +87,7 @@ export default function ApplicationForm({ ); } @@ -113,11 +116,9 @@ export default function ApplicationForm({ return; } const formIdAsBigInt = BigInt(applicationForm.id); - saveApplication(formAnswers, formIdAsBigInt).then(() => { + saveApplication(formAnswers, formIdAsBigInt, userOverride).then(() => { setCurrentStep((prev) => prev + 1); - toast.success( - "Application progress until now has been saved; you can continue now or later", - ); + toast.success("All changes saved."); }); } catch (e) { toast.error( diff --git a/src/components/forms/applications/beforeSubmitTab.tsx b/src/components/forms/applications/beforeSubmitTab.tsx index f2939456..c3222a49 100644 --- a/src/components/forms/applications/beforeSubmitTab.tsx +++ b/src/components/forms/applications/beforeSubmitTab.tsx @@ -6,9 +6,11 @@ import { Button } from "@/components/primitives/button"; export default function BeforeSubmitTab({ goToPreviousTab, formId, + otherUser, }: { goToPreviousTab: () => void; formId: number | bigint; + otherUser?: string; }) { const [submitted, setSubmitted] = useState< "not submitted" | "submitting" | "submitted" @@ -54,6 +56,7 @@ export default function BeforeSubmitTab({ onClick={() => submitApplication({ formId: BigInt(formId), + otherUser: otherUser, }).then( () => { toast.success("Your application has been submitted!"); diff --git a/src/lib/utils/forms/helpers.ts b/src/lib/utils/forms/helpers.ts index 4ab065a4..53145084 100644 --- a/src/lib/utils/forms/helpers.ts +++ b/src/lib/utils/forms/helpers.ts @@ -13,6 +13,7 @@ import { Form } from "@/lib/types/application"; export async function saveApplication( formAnswers: FormDetails, formId: bigint, + otherUser?: string, ) { const fields: Obj = {}; Object.keys(formAnswers).forEach((key) => { @@ -28,7 +29,7 @@ export async function saveApplication( if (Object.keys(fields).length !== 0) { const formIdNumber = BigInt(formId); - updateApplication({ application: fields, formId: formIdNumber }) + updateApplication({ application: fields, formId: formIdNumber, otherUser }) .then((res) => { // console.log(res); })