From a7887c810327f9186c46ce0f303d14672f7170f3 Mon Sep 17 00:00:00 2001 From: Kevin Foong <55353265+kevin9foong@users.noreply.github.com> Date: Fri, 14 Nov 2025 15:50:46 +0800 Subject: [PATCH 1/3] Merge pull request #8903 from opengovsg/fix/remove-chromatic-noise fix: remove noisy chromatic diffs due to dynamic dates and form link --- .../PrintableResponse.tsx | 9 +++++++-- .../public-form/PublicFormProvider.tsx | 20 +++++++++++++------ 2 files changed, 21 insertions(+), 8 deletions(-) diff --git a/frontend/src/features/admin-form/responses/IndividualResponsePage/PrintableResponse.tsx b/frontend/src/features/admin-form/responses/IndividualResponsePage/PrintableResponse.tsx index 491dd9815e..8d175b4341 100644 --- a/frontend/src/features/admin-form/responses/IndividualResponsePage/PrintableResponse.tsx +++ b/frontend/src/features/admin-form/responses/IndividualResponsePage/PrintableResponse.tsx @@ -181,6 +181,9 @@ const PrintableResponseRows = ({ ) } +const isTest = import.meta.env.STORYBOOK_NODE_ENV === 'test' +const MOCK_CONSTANT_FORM_LINK = 'https://form.gov.sg/64e2f7ae841cbe0012e785e7' + export const PrintableResponse = ({ formTitle, formId, @@ -210,9 +213,11 @@ export const PrintableResponse = ({ color="white" textDecor="underline" textDecorationColor="white" - data-chromatic="ignore" > - {window.location.origin}/{formId} + {/* RATIONALE: Prevent noisy diffs from being detected during storybook snapshot comparisons due to dynamic form link. */} + {isTest + ? MOCK_CONSTANT_FORM_LINK + : `${window.location.origin}/${formId}`} diff --git a/frontend/src/features/public-form/PublicFormProvider.tsx b/frontend/src/features/public-form/PublicFormProvider.tsx index 3cf995d5ab..36ed420e75 100644 --- a/frontend/src/features/public-form/PublicFormProvider.tsx +++ b/frontend/src/features/public-form/PublicFormProvider.tsx @@ -106,6 +106,9 @@ interface PublicFormProviderProps { isPublicFormPage?: boolean } +const DATE_TIME_FORMAT_STRING = 'do MMM yyyy, h:mm:ss a' +const MOCK_CONSTANT_LAST_SAVED_DATETIME = '2025-11-14T12:00:00.000Z' + export function useCommonFormProvider(formId: string) { // For mobile section sidebar const { @@ -1388,6 +1391,16 @@ export const PublicFormProvider = ({ return } + // RATIONALE: Prevent noisy diffs from being detected during storybook snapshot comparisons due to dynamic date time. + const draftLastSavedDateTime = + draftSubmission?.lastUpdated && isTest + ? MOCK_CONSTANT_LAST_SAVED_DATETIME + : draftSubmission?.lastUpdated + + const draftLastSavedDateTimeString = draftLastSavedDateTime + ? format(new Date(draftLastSavedDateTime), DATE_TIME_FORMAT_STRING) + : undefined + return ( Date: Mon, 17 Nov 2025 12:30:24 +0800 Subject: [PATCH 2/3] feat: respondent copy v3 (phase 1) (#8854) * move email confirmation toggle up; update PDF response toggle with new title & description * show respondent copy helper text on email field conditionally * update reference for respondent copy helper text i18n * replace emailField helper text with error if present * fix lint issues * updated default sender,title and body to editEmail placeholders and autoreply emails * fixed mail tests * update hiding respondent copy helper text when field is disabled * fixed FE lint * updated email field with helper text to be in a flex component to ensure vertical stacking * show helper text only when hasAutoReply and includeFormSummary is enabled --- .../edit-fieldtype/EditEmail/EditEmail.tsx | 130 ++++++++++-------- .../admin-form/sidebar/fields/en-sg.ts | 9 +- .../admin-form/sidebar/fields/index.ts | 3 +- .../features/public-form/fields/en-sg.ts | 2 + .../features/public-form/fields/index.ts | 1 + .../templates/Field/Email/EmailFieldInput.tsx | 50 +++++-- shared/constants/mail.ts | 5 + .../mail/__tests__/mail.service.spec.ts | 3 +- src/app/services/mail/mail.service.ts | 14 +- 9 files changed, 135 insertions(+), 82 deletions(-) create mode 100644 shared/constants/mail.ts diff --git a/frontend/src/features/admin-form/create/builder-and-design/BuilderAndDesignDrawer/EditFieldDrawer/edit-fieldtype/EditEmail/EditEmail.tsx b/frontend/src/features/admin-form/create/builder-and-design/BuilderAndDesignDrawer/EditFieldDrawer/edit-fieldtype/EditEmail/EditEmail.tsx index 0d170ac342..364e18df70 100644 --- a/frontend/src/features/admin-form/create/builder-and-design/BuilderAndDesignDrawer/EditFieldDrawer/edit-fieldtype/EditEmail/EditEmail.tsx +++ b/frontend/src/features/admin-form/create/builder-and-design/BuilderAndDesignDrawer/EditFieldDrawer/edit-fieldtype/EditEmail/EditEmail.tsx @@ -145,7 +145,9 @@ export const EditEmail = ({ field }: EditEmailProps): JSX.Element => { form?.responseMode === FormResponseMode.Email || isPaymentDisabledForm const pdfResponseToggleDescription = isPdfResponseEnabled - ? undefined + ? t( + 'features.adminForm.sidebar.fields.email.emailConfirmation.includeResponseDescription', + ) : t( 'features.adminForm.sidebar.fields.email.emailConfirmation.includePdfResponseWarning', ) @@ -185,52 +187,6 @@ export const EditEmail = ({ field }: EditEmailProps): JSX.Element => { )} /> - - - - - - - - {watchedHasAllowedEmailDomains && ( - - - {t( - 'features.adminForm.sidebar.fields.email.restrictEmailDomains.inputLabel', - )} - -