From 3275824c04db854a9c73d41c562dcf0ee49b708a Mon Sep 17 00:00:00 2001 From: Courtney Myers Date: Fri, 4 Nov 2022 15:57:54 -0400 Subject: [PATCH] Update handling of fetched form data to properly handle when user doesn't have access to a form submission (resolves infinite loading spinner, and properly displays message to user, as intented) --- app/client/src/routes/applicationForm.tsx | 6 ++---- app/client/src/routes/paymentRequestForm.tsx | 8 +++----- 2 files changed, 5 insertions(+), 9 deletions(-) diff --git a/app/client/src/routes/applicationForm.tsx b/app/client/src/routes/applicationForm.tsx index 0ecbcea8..2ca3888a 100644 --- a/app/client/src/routes/applicationForm.tsx +++ b/app/client/src/routes/applicationForm.tsx @@ -93,18 +93,16 @@ function ApplicationFormContent({ email }: { email: string }) { getData(`${serverUrl}/api/formio-application-submission/${mongoId}`) .then((res: FormioFetchedResponse) => { - if (!res.submission) return; - // set up s3 re-route to wrapper app const s3Provider = Formio.Providers.providers.storage.s3; Formio.Providers.providers.storage.s3 = function (formio: any) { const s3Formio = cloneDeep(formio); - const comboKey = res.submission.data.bap_hidden_entity_combo_key; + const comboKey = res.submission?.data.bap_hidden_entity_combo_key; s3Formio.formUrl = `${serverUrl}/api/s3/application/${mongoId}/${comboKey}`; return s3Provider(s3Formio); }; - const data = { ...res.submission.data }; + const data = { ...res.submission?.data }; // remove `ncesDataSource` and `ncesDataLookup` fields if (data.hasOwnProperty("ncesDataSource")) delete data.ncesDataSource; diff --git a/app/client/src/routes/paymentRequestForm.tsx b/app/client/src/routes/paymentRequestForm.tsx index 8af46d15..6967064f 100644 --- a/app/client/src/routes/paymentRequestForm.tsx +++ b/app/client/src/routes/paymentRequestForm.tsx @@ -89,19 +89,17 @@ function PaymentRequestFormContent({ email }: { email: string }) { getData(`${serverUrl}/api/formio-payment-request-submission/${rebateId}`) .then((res: FormioFetchedResponse) => { - if (!res.submission) return; - // set up s3 re-route to wrapper app const s3Provider = Formio.Providers.providers.storage.s3; Formio.Providers.providers.storage.s3 = function (formio: any) { const s3Formio = cloneDeep(formio); - const mongoId = res.submission._id; - const comboKey = res.submission.data.bap_hidden_entity_combo_key; + const mongoId = res.submission?._id; + const comboKey = res.submission?.data.bap_hidden_entity_combo_key; s3Formio.formUrl = `${serverUrl}/api/s3/payment-request/${mongoId}/${comboKey}`; return s3Provider(s3Formio); }; - const data = { ...res.submission.data }; + const data = { ...res.submission?.data }; setStoredSubmissionData((_prevData) => { storedSubmissionDataRef.current = cloneDeep(data);