From 4dd04831745bd8a25c2ac316ee572f30fe2a4b36 Mon Sep 17 00:00:00 2001 From: Christopher Bisom Date: Fri, 13 Sep 2024 15:04:14 -0400 Subject: [PATCH 01/33] 10074-bug: initial work --- .../actions/setValidationAlertErrorsAction.ts | 1 + .../src/presenter/computeds/alertHelper.ts | 1 - .../views/CaseDetailEdit/PartyInformation.tsx | 4 +++- web-client/src/views/ErrorNotification.tsx | 4 ++-- web-client/src/views/StartCase/Address.tsx | 24 +++++++++---------- .../src/views/StartCase/ContactPrimary.tsx | 16 ++++--------- .../src/views/StartCase/ContactSecondary.tsx | 14 +++-------- web-client/src/views/StartCase/Country.tsx | 18 +++++++------- .../views/StartCase/InternationalAddress.tsx | 17 +++++++------ .../src/views/StartCase/StartCaseStep3.tsx | 2 +- .../StartCaseInternal/CaseInformation.tsx | 18 ++++++++------ .../src/views/StartCaseInternal/Parties.tsx | 6 +++-- 12 files changed, 59 insertions(+), 66 deletions(-) diff --git a/web-client/src/presenter/actions/setValidationAlertErrorsAction.ts b/web-client/src/presenter/actions/setValidationAlertErrorsAction.ts index a4ae8199ac5..3dd3263d756 100644 --- a/web-client/src/presenter/actions/setValidationAlertErrorsAction.ts +++ b/web-client/src/presenter/actions/setValidationAlertErrorsAction.ts @@ -86,6 +86,7 @@ export const setValidationAlertErrorsAction = ({ } }), ), + preventAutoScroll: props.preventAutoScroll || false, title: 'Please correct the following errors on the page:', }; store.set(state.alertError, alertError); diff --git a/web-client/src/presenter/computeds/alertHelper.ts b/web-client/src/presenter/computeds/alertHelper.ts index 7f98c6267c9..9fab5e99a36 100644 --- a/web-client/src/presenter/computeds/alertHelper.ts +++ b/web-client/src/presenter/computeds/alertHelper.ts @@ -15,7 +15,6 @@ export const alertHelper = (get: Get): any => { return { messagesDeduped: uniq(alertError.messages).filter(Boolean), - preventAutoScroll: false, responseCode: alertError.responseCode, showErrorAlert: !!alertError.title || !!alertError.message || !!alertError.messages, diff --git a/web-client/src/views/CaseDetailEdit/PartyInformation.tsx b/web-client/src/views/CaseDetailEdit/PartyInformation.tsx index f6fcd70dbea..b498cdf7995 100644 --- a/web-client/src/views/CaseDetailEdit/PartyInformation.tsx +++ b/web-client/src/views/CaseDetailEdit/PartyInformation.tsx @@ -11,12 +11,14 @@ export const PartyInformation = connect( form: state.form, updateCasePartyTypeSequence: sequences.updateCasePartyTypeSequence, updateFormValueSequence: sequences.updateFormValueSequence, + validateCaseDetailSequence: sequences.validateCaseDetailSequence, }, function PartyInformation({ caseDetailEditHelper, form, updateCasePartyTypeSequence, updateFormValueSequence, + validateCaseDetailSequence, }) { return (
@@ -87,7 +89,7 @@ export const PartyInformation = connect( showPrimaryContact={caseDetailEditHelper.showPrimaryContact} showSecondaryContact={caseDetailEditHelper.showSecondaryContact} useSameAsPrimary={true} - onBlur="validateCaseDetailSequence" + onBlur={validateCaseDetailSequence} onChange="updateFormValueAndCaseCaptionSequence" />
diff --git a/web-client/src/views/ErrorNotification.tsx b/web-client/src/views/ErrorNotification.tsx index c7486c5ed63..6e80076d0fa 100644 --- a/web-client/src/views/ErrorNotification.tsx +++ b/web-client/src/views/ErrorNotification.tsx @@ -15,9 +15,9 @@ export const ErrorNotification = connect( alertError?: { title?: string; message?: string; + preventAutoScroll?: boolean; }; alertHelper: { - preventAutoScroll?: boolean; showErrorAlert?: boolean; showSingleMessage?: boolean; showMultipleMessages?: boolean; @@ -29,7 +29,7 @@ export const ErrorNotification = connect( useEffect(() => { const notification = notificationRef.current; - if (notification && !alertHelper.preventAutoScroll) { + if (notification && !alertError?.preventAutoScroll) { window.scrollTo(0, 0); } }); diff --git a/web-client/src/views/StartCase/Address.tsx b/web-client/src/views/StartCase/Address.tsx index 78735ecf2ae..bb96cff0b74 100644 --- a/web-client/src/views/StartCase/Address.tsx +++ b/web-client/src/views/StartCase/Address.tsx @@ -11,7 +11,7 @@ import classNames from 'classnames'; export const Address = connect( { data: state[props.bind], - onBlurSequence: sequences[props.onBlur], + onBlur: props.onBlur, registerRef: props.registerRef, type: props.type, updateFormValueAndSecondaryContactInfoSequence: sequences[props.onChange], @@ -20,7 +20,7 @@ export const Address = connect( }, function Address({ data, - onBlurSequence, + onBlur, registerRef, type, updateFormValueAndSecondaryContactInfoSequence, @@ -38,7 +38,7 @@ export const Address = connect( useFullStateName data={data} handleBlur={() => - onBlurSequence({ + onBlur({ validationKey: [type, 'state'], }) } @@ -46,7 +46,7 @@ export const Address = connect( refProp={registerRef && registerRef(`${type}.state`)} type={type} onChangeValidationSequence={() => - onBlurSequence({ + onBlur({ validationKey: [type, 'state'], }) } @@ -70,7 +70,7 @@ export const Address = connect( type="text" value={data[type].postalCode || ''} onBlur={() => { - onBlurSequence({ + onBlur({ validationKey: [type, 'postalCode'], }); }} @@ -109,7 +109,7 @@ export const Address = connect( className="max-width-180" data={data} handleBlur={() => - onBlurSequence({ + onBlur({ validationKey: [type, 'state'], }) } @@ -117,7 +117,7 @@ export const Address = connect( refProp={registerRef && registerRef(`${type}.state`)} type={type} onChangeValidationSequence={() => - onBlurSequence({ + onBlur({ validationKey: [type, 'state'], }) } @@ -152,7 +152,7 @@ export const Address = connect( type="text" value={data[type].postalCode || ''} onBlur={() => { - onBlurSequence({ + onBlur({ validationKey: [type, 'postalCode'], }); }} @@ -198,7 +198,7 @@ export const Address = connect( type="text" value={data[type].address1 || ''} onBlur={() => { - onBlurSequence({ + onBlur({ validationKey: [type, 'address1'], }); }} @@ -222,7 +222,7 @@ export const Address = connect( type="text" value={data[type].address2 || ''} onBlur={() => { - onBlurSequence({ + onBlur({ validationKey: [type, 'address2'], }); }} @@ -246,7 +246,7 @@ export const Address = connect( type="text" value={data[type].address3 || ''} onBlur={() => { - onBlurSequence({ + onBlur({ validationKey: [type, 'address3'], }); }} @@ -275,7 +275,7 @@ export const Address = connect( type="text" value={data[type].city || ''} onBlur={() => { - onBlurSequence({ + onBlur({ validationKey: [type, 'city'], }); }} diff --git a/web-client/src/views/StartCase/ContactPrimary.tsx b/web-client/src/views/StartCase/ContactPrimary.tsx index 16b80966a18..2465a447cf4 100644 --- a/web-client/src/views/StartCase/ContactPrimary.tsx +++ b/web-client/src/views/StartCase/ContactPrimary.tsx @@ -13,7 +13,7 @@ import React from 'react'; const props = cerebralProps as unknown as { contactsHelper: string; bind: string; - onBlur: string; + onBlur: () => void; onChange: string; parentView: string; }; @@ -25,7 +25,6 @@ export const ContactPrimary = connect( contactsHelper: state[props.contactsHelper], data: state[props.bind], onBlur: props.onBlur, - onBlurSequence: sequences[props.onBlur], onChange: props.onChange, onChangeSequence: sequences[props.onChange], parentView: props.parentView, @@ -39,7 +38,6 @@ export const ContactPrimary = connect( contactsHelper, data, onBlur, - onBlurSequence, onChange, onChangeSequence, parentView, @@ -139,9 +137,7 @@ export const ContactPrimary = connect( name="contactPrimary.inCareOf" type="text" value={data.contactPrimary.inCareOf || ''} - onBlur={() => { - onBlurSequence(); - }} + onBlur={onBlur} onChange={e => { onChangeSequence({ key: e.target.name, @@ -179,9 +175,7 @@ export const ContactPrimary = connect( name="contactPrimary.name" type="text" value={data.contactPrimary.name || ''} - onBlur={() => { - onBlurSequence(); - }} + onBlur={onBlur} onChange={e => { onChangeSequence({ key: e.target.name, @@ -253,9 +247,7 @@ export const ContactPrimary = connect( name="contactPrimary.phone" type="text" value={data.contactPrimary.phone || ''} - onBlur={() => { - onBlurSequence(); - }} + onBlur={onBlur} onChange={e => { updateFormValueAndSecondaryContactInfoSequence({ key: e.target.name, diff --git a/web-client/src/views/StartCase/ContactSecondary.tsx b/web-client/src/views/StartCase/ContactSecondary.tsx index 560eaa58a42..cb3113833b1 100644 --- a/web-client/src/views/StartCase/ContactSecondary.tsx +++ b/web-client/src/views/StartCase/ContactSecondary.tsx @@ -17,7 +17,6 @@ export const ContactSecondary = connect( contactsHelper: state[props.contactsHelper], data: state[props.bind], onBlur: props.onBlur, - onBlurSequence: sequences[props.onBlur], onChange: props.onChange, onChangeSequence: sequences[props.onChange], parentView: props.parentView, @@ -33,7 +32,6 @@ export const ContactSecondary = connect( contactsHelper, data, onBlur, - onBlurSequence, onChange, onChangeSequence, parentView, @@ -70,9 +68,7 @@ export const ContactSecondary = connect( name="contactSecondary.name" type="text" value={data.contactSecondary.name || ''} - onBlur={() => { - onBlurSequence(); - }} + onBlur={onBlur} onChange={e => { onChangeSequence({ key: e.target.name, @@ -137,9 +133,7 @@ export const ContactSecondary = connect( name="contactSecondary.inCareOf" type="text" value={data.contactSecondary.inCareOf || ''} - onBlur={() => { - onBlurSequence(); - }} + onBlur={onBlur} onChange={e => { onChangeSequence({ key: e.target.name, @@ -203,9 +197,7 @@ export const ContactSecondary = connect( name="contactSecondary.phone" type="text" value={data.contactSecondary.phone || ''} - onBlur={() => { - onBlurSequence(); - }} + onBlur={onBlur} onChange={e => { onChangeSequence({ key: e.target.name, diff --git a/web-client/src/views/StartCase/Country.tsx b/web-client/src/views/StartCase/Country.tsx index 32a5ed3036e..df4b99b9ce4 100644 --- a/web-client/src/views/StartCase/Country.tsx +++ b/web-client/src/views/StartCase/Country.tsx @@ -9,7 +9,7 @@ export const Country = connect( { constants: state.constants, data: state[props.bind], - onBlurSequence: sequences[props.onBlur], + onBlur: props.onBlur, onChangeCountryType: sequences[props.onChangeCountryType], registerRef: props.registerRef, type: props.type, @@ -19,7 +19,7 @@ export const Country = connect( function Country({ constants, data, - onBlurSequence, + onBlur, onChangeCountryType, registerRef, type, @@ -50,8 +50,10 @@ export const Country = connect( type, value: e.target.value, }); - if (onBlurSequence) { - onBlurSequence({ validationKey: [type, 'countryType'] }); + if (onBlur) { + onBlur({ + validationKey: [type, 'countryType'], + }); } }} /> @@ -79,8 +81,8 @@ export const Country = connect( type, value: e.target.value, }); - if (onBlurSequence) { - onBlurSequence({ + if (onBlur) { + onBlur({ validationKey: [type, 'countryType'], }); } @@ -114,8 +116,8 @@ export const Country = connect( type="text" value={data[type].country || ''} onBlur={() => { - if (onBlurSequence) { - onBlurSequence({ + if (onBlur) { + onBlur({ validationKey: [type, 'country'], }); } diff --git a/web-client/src/views/StartCase/InternationalAddress.tsx b/web-client/src/views/StartCase/InternationalAddress.tsx index f931dd25445..2e4307dc4f7 100644 --- a/web-client/src/views/StartCase/InternationalAddress.tsx +++ b/web-client/src/views/StartCase/InternationalAddress.tsx @@ -7,7 +7,7 @@ import React from 'react'; const props = cerebralProps as unknown as { bind: string; - onBlur: string; + onBlur: any; type: string; onChange: string; registerRef: (param: string) => void; @@ -17,7 +17,6 @@ export const InternationalAddress = connect( { data: state[props.bind], onBlur: props.onBlur, - onBlurSequence: sequences[props.onBlur], registerRef: props.registerRef, type: props.type, updateFormValueSequence: sequences[props.onChange], @@ -25,7 +24,7 @@ export const InternationalAddress = connect( }, function InternationalAddress({ data, - onBlurSequence, + onBlur, registerRef, type, updateFormValueSequence, @@ -50,7 +49,7 @@ export const InternationalAddress = connect( type="text" value={data[type].address1 || ''} onBlur={() => { - onBlurSequence({ + onBlur({ validationKey: [type, 'address1'], }); }} @@ -75,7 +74,7 @@ export const InternationalAddress = connect( type="text" value={data[type].address2 || ''} onBlur={() => { - onBlurSequence({ + onBlur({ validationKey: [type, 'address2'], }); }} @@ -100,7 +99,7 @@ export const InternationalAddress = connect( type="text" value={data[type].address3 || ''} onBlur={() => { - onBlurSequence({ + onBlur({ validationKey: [type, 'address3'], }); }} @@ -129,7 +128,7 @@ export const InternationalAddress = connect( type="text" value={data[type].state || ''} onBlur={() => { - onBlurSequence({ + onBlur({ validationKey: [type, 'state'], }); }} @@ -158,7 +157,7 @@ export const InternationalAddress = connect( type="text" value={data[type].city || ''} onBlur={() => { - onBlurSequence({ + onBlur({ validationKey: [type, 'city'], }); }} @@ -187,7 +186,7 @@ export const InternationalAddress = connect( type="text" value={data[type].postalCode || ''} onBlur={() => { - onBlurSequence({ + onBlur({ validationKey: [type, 'postalCode'], }); }} diff --git a/web-client/src/views/StartCase/StartCaseStep3.tsx b/web-client/src/views/StartCase/StartCaseStep3.tsx index 3ac12d536e5..5c538c0226c 100644 --- a/web-client/src/views/StartCase/StartCaseStep3.tsx +++ b/web-client/src/views/StartCase/StartCaseStep3.tsx @@ -349,7 +349,7 @@ export const StartCaseStep3 = connect( showPrimaryContact={startCaseHelper.showPrimaryContact} showSecondaryContact={startCaseHelper.showSecondaryContact} useSameAsPrimary={true} - onBlur="validateStartCaseWizardSequence" + onBlur={validateStartCaseWizardSequence} onChange="updateFormValueSequence" /> diff --git a/web-client/src/views/StartCaseInternal/CaseInformation.tsx b/web-client/src/views/StartCaseInternal/CaseInformation.tsx index ac40848fe84..e7f25e27851 100644 --- a/web-client/src/views/StartCaseInternal/CaseInformation.tsx +++ b/web-client/src/views/StartCaseInternal/CaseInformation.tsx @@ -53,7 +53,7 @@ export const CaseInformation = connect( toFormat: DATE_FORMATS.ISO, value: e.target.value, }); - validatePetitionFromPaperSequence(); + validatePetitionFromPaperSequence({ preventAutoScroll: true }); }} /> @@ -66,7 +66,9 @@ export const CaseInformation = connect( maxLength="25" name="mailingDate" value={form.mailingDate || ''} - onBlur={() => validatePetitionFromPaperSequence()} + onBlur={() => + validatePetitionFromPaperSequence({ preventAutoScroll: true }) + } onChange={e => { updateFormValueSequence({ key: e.target.name, @@ -85,7 +87,7 @@ export const CaseInformation = connect( name="caseCaption" value={form.caseCaption} onBlur={() => { - validatePetitionFromPaperSequence(); + validatePetitionFromPaperSequence({ preventAutoScroll: true }); }} onChange={e => { updateFormValueSequence({ @@ -107,7 +109,7 @@ export const CaseInformation = connect( value: e.target.value, }); clearPreferredTrialCitySequence(); - validatePetitionFromPaperSequence(); + validatePetitionFromPaperSequence({ preventAutoScroll: true }); }} /> @@ -148,7 +150,7 @@ export const CaseInformation = connect( key: e.target.name, value: e.target.value || null, }); - validatePetitionFromPaperSequence(); + validatePetitionFromPaperSequence({ preventAutoScroll: true }); }} /> @@ -165,7 +167,7 @@ export const CaseInformation = connect( key: e.target.name, value: e.target.checked, }); - validatePetitionFromPaperSequence(); + validatePetitionFromPaperSequence({ preventAutoScroll: true }); }} />