From 507fd6d3975013b9b93b0bed9e6dc201ca64e5a8 Mon Sep 17 00:00:00 2001 From: Nechama Krigsman Date: Mon, 16 Sep 2024 14:09:42 -0400 Subject: [PATCH 1/7] 10039: remove tab, route, components that were unused when filing a document; --- .../navigateToViewAllDocumentsAction.test.ts | 30 ---- .../navigateToViewAllDocumentsAction.ts | 19 --- .../clearAllDocumentsAccordionAction.test.ts | 14 -- .../clearAllDocumentsAccordionAction.ts | 10 -- .../computeds/viewAllDocumentsHelper.test.ts | 39 ------ .../computeds/viewAllDocumentsHelper.ts | 105 -------------- web-client/src/presenter/presenter.ts | 9 -- .../dismissCreateMessageModalSequence.ts | 17 --- .../sequences/gotoViewAllDocumentsSequence.ts | 15 -- ...CompleteSelectDocumentTypeModalSequence.ts | 23 ---- web-client/src/presenter/state.ts | 4 - web-client/src/router.ts | 18 --- .../CompleteDocumentTypeSection.tsx | 7 - .../CompleteSelectDocumentModalDialog.tsx | 31 ----- .../views/FileDocument/FileDocumentWizard.tsx | 5 +- .../views/FileDocument/SelectDocumentType.tsx | 5 - .../ViewAllDocumentsMobile.tsx | 95 ------------- .../ViewDocumentCategory.tsx | 114 --------------- .../WhatDocumentIsThis.tsx | 130 ------------------ .../SelectDocumentWizardOverlay/index.tsx | 32 ----- .../views/FileDocument/ViewAllDocuments.tsx | 13 -- .../FileDocument/ViewAllDocumentsDesktop.tsx | 120 ---------------- 22 files changed, 1 insertion(+), 854 deletions(-) delete mode 100644 web-client/src/presenter/actions/FileDocument/navigateToViewAllDocumentsAction.test.ts delete mode 100644 web-client/src/presenter/actions/FileDocument/navigateToViewAllDocumentsAction.ts delete mode 100644 web-client/src/presenter/actions/clearAllDocumentsAccordionAction.test.ts delete mode 100644 web-client/src/presenter/actions/clearAllDocumentsAccordionAction.ts delete mode 100644 web-client/src/presenter/computeds/viewAllDocumentsHelper.test.ts delete mode 100644 web-client/src/presenter/computeds/viewAllDocumentsHelper.ts delete mode 100644 web-client/src/presenter/sequences/dismissCreateMessageModalSequence.ts delete mode 100644 web-client/src/presenter/sequences/gotoViewAllDocumentsSequence.ts delete mode 100644 web-client/src/presenter/sequences/openCompleteSelectDocumentTypeModalSequence.ts delete mode 100644 web-client/src/views/FileDocument/CompleteSelectDocumentModalDialog.tsx delete mode 100644 web-client/src/views/FileDocument/SelectDocumentWizardOverlay/ViewAllDocumentsMobile.tsx delete mode 100644 web-client/src/views/FileDocument/SelectDocumentWizardOverlay/ViewDocumentCategory.tsx delete mode 100644 web-client/src/views/FileDocument/SelectDocumentWizardOverlay/WhatDocumentIsThis.tsx delete mode 100644 web-client/src/views/FileDocument/SelectDocumentWizardOverlay/index.tsx delete mode 100644 web-client/src/views/FileDocument/ViewAllDocuments.tsx delete mode 100644 web-client/src/views/FileDocument/ViewAllDocumentsDesktop.tsx diff --git a/web-client/src/presenter/actions/FileDocument/navigateToViewAllDocumentsAction.test.ts b/web-client/src/presenter/actions/FileDocument/navigateToViewAllDocumentsAction.test.ts deleted file mode 100644 index 18a69d2f5fc..00000000000 --- a/web-client/src/presenter/actions/FileDocument/navigateToViewAllDocumentsAction.test.ts +++ /dev/null @@ -1,30 +0,0 @@ -import { navigateToViewAllDocumentsAction } from './navigateToViewAllDocumentsAction'; -import { presenter } from '../../presenter-mock'; -import { runAction } from '@web-client/presenter/test.cerebral'; - -const routeStub = jest.fn(); - -presenter.providers.router = { - route: routeStub, -}; - -describe('navigateToViewAllDocumentsAction', () => { - it('should set the state.wizardStep to the ViewAllDocuments and route to view all documents', async () => { - const result = await runAction(navigateToViewAllDocumentsAction, { - modules: { - presenter, - }, - state: { - caseDetail: { - docketNumber: '122-19', - }, - }, - }); - - expect(result.state.wizardStep).toEqual('ViewAllDocuments'); - expect(routeStub.mock.calls.length).toEqual(1); - expect(routeStub.mock.calls[0][0]).toEqual( - '/case-detail/122-19/file-a-document/all-document-categories', - ); - }); -}); diff --git a/web-client/src/presenter/actions/FileDocument/navigateToViewAllDocumentsAction.ts b/web-client/src/presenter/actions/FileDocument/navigateToViewAllDocumentsAction.ts deleted file mode 100644 index 132f83c0c77..00000000000 --- a/web-client/src/presenter/actions/FileDocument/navigateToViewAllDocumentsAction.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { state } from '@web-client/presenter/app.cerebral'; - -/** - * changes the route to view the view all documents page - * @param {object} providers the providers object - * @param {object} providers.router the riot.router object that is used for changing the route - * @param {object} providers.props the cerebral props that contain the props.docketNumber - */ -export const navigateToViewAllDocumentsAction = async ({ - get, - router, - store, -}: ActionProps) => { - store.set(state.wizardStep, 'ViewAllDocuments'); - const { docketNumber } = get(state.caseDetail); - await router.route( - `/case-detail/${docketNumber}/file-a-document/all-document-categories`, - ); -}; diff --git a/web-client/src/presenter/actions/clearAllDocumentsAccordionAction.test.ts b/web-client/src/presenter/actions/clearAllDocumentsAccordionAction.test.ts deleted file mode 100644 index 0e50b9277bf..00000000000 --- a/web-client/src/presenter/actions/clearAllDocumentsAccordionAction.test.ts +++ /dev/null @@ -1,14 +0,0 @@ -import { clearAllDocumentsAccordionAction } from './clearAllDocumentsAccordionAction'; -import { runAction } from '@web-client/presenter/test.cerebral'; - -describe('clearAllDocumentsAccordionAction', () => { - it('should set state.allDocumentsAccordion to empty string', async () => { - const { state } = await runAction(clearAllDocumentsAccordionAction, { - state: { - allDocumentsAccordion: 'whatever', - }, - }); - - expect(state.allDocumentsAccordion).toEqual(''); - }); -}); diff --git a/web-client/src/presenter/actions/clearAllDocumentsAccordionAction.ts b/web-client/src/presenter/actions/clearAllDocumentsAccordionAction.ts deleted file mode 100644 index 89ebbe3257f..00000000000 --- a/web-client/src/presenter/actions/clearAllDocumentsAccordionAction.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { state } from '@web-client/presenter/app.cerebral'; - -/** - * clears state.allDocumentsAccordion - * @param {object} providers the providers object - * @param {object} providers.store the cerebral store object - */ -export const clearAllDocumentsAccordionAction = ({ store }: ActionProps) => { - store.set(state.allDocumentsAccordion, ''); -}; diff --git a/web-client/src/presenter/computeds/viewAllDocumentsHelper.test.ts b/web-client/src/presenter/computeds/viewAllDocumentsHelper.test.ts deleted file mode 100644 index 213c84e73f7..00000000000 --- a/web-client/src/presenter/computeds/viewAllDocumentsHelper.test.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { applicationContext } from '../../applicationContext'; -import { runCompute } from '@web-client/presenter/test.cerebral'; -import { viewAllDocumentsHelper as viewAllDocumentsHelperComputed } from './viewAllDocumentsHelper'; -import { withAppContextDecorator } from '../../withAppContext'; - -const viewAllDocumentsHelper = withAppContextDecorator( - viewAllDocumentsHelperComputed, - applicationContext, -); - -describe('viewAllDocumentsHelper', () => { - it('returns all document categories, document types, reasons, and sections', () => { - const result = runCompute(viewAllDocumentsHelper, { - state: {}, - }); - - expect(result.categoryMap).toBeTruthy(); - expect(result.documentTypesForSelect).toBeTruthy(); - expect(result.documentTypesForSelectSorted).toBeTruthy(); - expect(result.reasons).toBeTruthy(); - expect(result.sections).toBeTruthy(); - }); - - it("doesn't return any categories when looking for a secondary document", () => { - const result = runCompute(viewAllDocumentsHelper, { - state: { - modal: { - forSecondary: false, - }, - }, - }); - - expect( - result.categoryMap.Motion.some( - motion => motion.scenario === 'Nonstandard H', - ), - ).toEqual(true); - }); -}); diff --git a/web-client/src/presenter/computeds/viewAllDocumentsHelper.ts b/web-client/src/presenter/computeds/viewAllDocumentsHelper.ts deleted file mode 100644 index 1a90a7504e1..00000000000 --- a/web-client/src/presenter/computeds/viewAllDocumentsHelper.ts +++ /dev/null @@ -1,105 +0,0 @@ -import { - getDocumentTypesForSelect, - getSortFunction, -} from './internalTypesHelper'; -import { state } from '@web-client/presenter/app.cerebral'; - -import { ClientApplicationContext } from '@web-client/applicationContext'; -import { Get } from 'cerebral'; -export const viewAllDocumentsHelper = ( - get: Get, - applicationContext: ClientApplicationContext, -): any => { - const { CATEGORIES, CATEGORY_MAP } = applicationContext.getConstants(); - const searchText = get(state.screenMetadata.searchText) || ''; - - const documentTypesForSelect = getDocumentTypesForSelect(CATEGORY_MAP); - - const documentTypesForSelectSorted = documentTypesForSelect.sort( - getSortFunction(searchText), - ); - - const sections = [...CATEGORIES]; - sections.push(sections.shift()); - - const forSecondary = get(state.modal.forSecondary); - let categoryMap = { ...CATEGORY_MAP }; - sections.forEach(section => { - categoryMap[section] = categoryMap[section].filter( - entry => !forSecondary || entry.scenario !== 'Nonstandard H', - ); - }); - - const reasons = [ - { - categories: [ - { - category: 'Application', - }, - { - category: 'Motion', - }, - { - category: 'Petition', - }, - ], - reason: 'Request something from the court', - }, - { - categories: [ - { - category: 'Notice', - }, - { - category: 'Pretrial Memorandum', - }, - { - category: 'Seriatim Brief', - }, - { - category: 'Simultaneous Brief', - }, - { - category: 'Statement', - }, - { - category: 'Stipulation', - }, - ], - reason: 'Notify the court of a change', - }, - { - categories: [ - { - category: 'Miscellaneous', - }, - { - category: 'Supporting Document', - }, - ], - reason: 'Update or add to a document', - }, - { - categories: [ - { - category: 'Motion', - }, - { - category: 'Reply', - }, - { - category: 'Response, Opposition or Objection', - }, - ], - reason: 'Respond to a previous document', - }, - ]; - - return { - categoryMap, - documentTypesForSelect, - documentTypesForSelectSorted, - reasons, - sections, - }; -}; diff --git a/web-client/src/presenter/presenter.ts b/web-client/src/presenter/presenter.ts index 102f08ece62..fb4c7303fa4 100644 --- a/web-client/src/presenter/presenter.ts +++ b/web-client/src/presenter/presenter.ts @@ -110,7 +110,6 @@ import { deleteWorkingCopySessionNoteSequence } from './sequences/deleteWorkingC import { disengageAppMaintenanceSequence } from './sequences/disengageAppMaintenanceSequence'; import { dismissAddEditCaseWorksheetModalSequence } from '@web-client/presenter/sequences/dismissAddEditCaseWorksheetModalSequence'; import { dismissAlertSequence } from './sequences/dismissAlertSequence'; -import { dismissCreateMessageModalSequence } from './sequences/dismissCreateMessageModalSequence'; import { dismissModalSequence } from './sequences/dismissModalSequence'; import { dismissThirtyDayTrialAlertSequence } from './sequences/dismissThirtyDayTrialAlertSequence'; import { downloadCsvFileSequence } from '@web-client/presenter/sequences/downloadCsvFileSequence'; @@ -222,7 +221,6 @@ import { gotoUploadCorrespondenceDocumentSequence } from './sequences/gotoUpload import { gotoUploadCourtIssuedDocumentSequence } from './sequences/gotoUploadCourtIssuedDocumentSequence'; import { gotoUserContactEditSequence } from './sequences/gotoUserContactEditSequence'; import { gotoVerifyEmailSequence } from './sequences/gotoVerifyEmailSequence'; -import { gotoViewAllDocumentsSequence } from './sequences/gotoViewAllDocumentsSequence'; import { gotoWorkQueueSequence } from './sequences/gotoWorkQueueSequence'; import { handleAppHasUpdatedSequence } from './sequences/handleAppHasUpdatedSequence'; import { handleIdleLogoutSequence } from './sequences/handleIdleLogoutSequence'; @@ -274,7 +272,6 @@ import { openChangeScannerSourceModalSequence } from './sequences/openChangeScan import { openCleanModalSequence } from './sequences/openCleanModalSequence'; import { openCompleteAndSendMessageModalSequence } from './sequences/openCompleteAndSendMessageModalSequence'; import { openCompleteMessageModalSequence } from './sequences/openCompleteMessageModalSequence'; -import { openCompleteSelectDocumentTypeModalSequence } from './sequences/openCompleteSelectDocumentTypeModalSequence'; import { openConfirmDeleteBatchModalSequence } from './sequences/openConfirmDeleteBatchModalSequence'; import { openConfirmDeleteCorrespondenceModalSequence } from './sequences/openConfirmDeleteCorrespondenceModalSequence'; import { openConfirmDeleteDeficiencyStatisticsModalSequence } from './sequences/openConfirmDeleteDeficiencyStatisticsModalSequence'; @@ -775,8 +772,6 @@ export const presenterSequences = { dismissAddEditCaseWorksheetModalSequence: dismissAddEditCaseWorksheetModalSequence as unknown as Function, dismissAlertSequence: dismissAlertSequence as unknown as Function, - dismissCreateMessageModalSequence: - dismissCreateMessageModalSequence as unknown as Function, dismissModalSequence: dismissModalSequence as unknown as Function, dismissThirtyDayTrialAlertSequence: dismissThirtyDayTrialAlertSequence as unknown as Function, @@ -953,8 +948,6 @@ export const presenterSequences = { gotoUserContactEditSequence: gotoUserContactEditSequence as unknown as Function, gotoVerifyEmailSequence, - gotoViewAllDocumentsSequence: - gotoViewAllDocumentsSequence as unknown as Function, gotoWorkQueueSequence: gotoWorkQueueSequence as unknown as Function, handleAppHasUpdatedSequence, handleIdleLogoutSequence: handleIdleLogoutSequence as unknown as Function, @@ -1039,8 +1032,6 @@ export const presenterSequences = { openCompleteAndSendMessageModalSequence as unknown as Function, openCompleteMessageModalSequence: openCompleteMessageModalSequence as unknown as Function, - openCompleteSelectDocumentTypeModalSequence: - openCompleteSelectDocumentTypeModalSequence as unknown as Function, openConfirmDeleteBatchModalSequence: openConfirmDeleteBatchModalSequence as unknown as Function, openConfirmDeleteCorrespondenceModalSequence: diff --git a/web-client/src/presenter/sequences/dismissCreateMessageModalSequence.ts b/web-client/src/presenter/sequences/dismissCreateMessageModalSequence.ts deleted file mode 100644 index 520aec0f656..00000000000 --- a/web-client/src/presenter/sequences/dismissCreateMessageModalSequence.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { clearAlertsAction } from '../actions/clearAlertsAction'; -import { clearFormAction } from '../actions/clearFormAction'; -import { clearModalAction } from '../actions/clearModalAction'; -import { clearModalStateAction } from '../actions/clearModalStateAction'; -import { clearScreenMetadataAction } from '../actions/clearScreenMetadataAction'; -import { clearUsersAction } from '../actions/clearUsersAction'; -import { stopShowValidationAction } from '../actions/stopShowValidationAction'; - -export const dismissCreateMessageModalSequence = [ - stopShowValidationAction, - clearFormAction, - clearScreenMetadataAction, - clearUsersAction, - clearAlertsAction, - clearModalAction, - clearModalStateAction, -]; diff --git a/web-client/src/presenter/sequences/gotoViewAllDocumentsSequence.ts b/web-client/src/presenter/sequences/gotoViewAllDocumentsSequence.ts deleted file mode 100644 index a60d16d7303..00000000000 --- a/web-client/src/presenter/sequences/gotoViewAllDocumentsSequence.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { clearAllDocumentsAccordionAction } from '../actions/clearAllDocumentsAccordionAction'; -import { clearFormAction } from '../actions/clearFormAction'; -import { clearModalAction } from '../actions/clearModalAction'; -import { clearModalStateAction } from '../actions/clearModalStateAction'; -import { clearScreenMetadataAction } from '../actions/clearScreenMetadataAction'; -import { navigateToViewAllDocumentsAction } from '../actions/FileDocument/navigateToViewAllDocumentsAction'; - -export const gotoViewAllDocumentsSequence = [ - clearFormAction, - clearModalAction, - clearModalStateAction, - clearScreenMetadataAction, - clearAllDocumentsAccordionAction, - navigateToViewAllDocumentsAction, -]; diff --git a/web-client/src/presenter/sequences/openCompleteSelectDocumentTypeModalSequence.ts b/web-client/src/presenter/sequences/openCompleteSelectDocumentTypeModalSequence.ts deleted file mode 100644 index 2cc94b49e5a..00000000000 --- a/web-client/src/presenter/sequences/openCompleteSelectDocumentTypeModalSequence.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { clearModalStateAction } from '../actions/clearModalStateAction'; -import { defaultSecondaryDocumentAction } from '../actions/FileDocument/defaultSecondaryDocumentAction'; -import { generateTitleAction } from '../actions/FileDocument/generateTitleAction'; -import { navigateToFileADocumentAction } from '../actions/FileDocument/navigateToFileADocumentAction'; -import { setDefaultFileDocumentFormValuesAction } from '../actions/FileDocument/setDefaultFileDocumentFormValuesAction'; -import { setDocketNumberPropAction } from '../actions/FileDocument/setDocketNumberPropAction'; -import { setShowModalFactoryAction } from '../actions/setShowModalFactoryAction'; -import { validateSelectDocumentTypeAction } from '../actions/validateSelectDocumentTypeAction'; - -export const openCompleteSelectDocumentTypeModalSequence = [ - clearModalStateAction, - defaultSecondaryDocumentAction, - validateSelectDocumentTypeAction, - { - error: [setShowModalFactoryAction('CompleteSelectDocumentModalDialog')], - success: [ - generateTitleAction, - setDocketNumberPropAction, - setDefaultFileDocumentFormValuesAction, - navigateToFileADocumentAction, - ], - }, -]; diff --git a/web-client/src/presenter/state.ts b/web-client/src/presenter/state.ts index f2c8ef80387..9d21ce45d00 100644 --- a/web-client/src/presenter/state.ts +++ b/web-client/src/presenter/state.ts @@ -149,7 +149,6 @@ import { trialSessionsSummaryHelper } from './computeds/trialSessionsSummaryHelp import { updateCaseModalHelper } from './computeds/updateCaseModalHelper'; import { userContactEditHelper } from './computeds/userContactEditHelper'; import { userContactEditProgressHelper } from './computeds/userContactEditProgressHelper'; -import { viewAllDocumentsHelper } from './computeds/viewAllDocumentsHelper'; import { viewCounselHelper } from './computeds/viewCounselHelper'; import { workQueueHelper } from './computeds/workQueueHelper'; @@ -560,9 +559,6 @@ export const computeds = { userContactEditProgressHelper as unknown as ReturnType< typeof userContactEditProgressHelper >, - viewAllDocumentsHelper: viewAllDocumentsHelper as unknown as ReturnType< - typeof viewAllDocumentsHelper - >, viewCounselHelper: viewCounselHelper as unknown as ReturnType< typeof viewCounselHelper >, diff --git a/web-client/src/router.ts b/web-client/src/router.ts index f42c652947c..dcbbeb80f4d 100644 --- a/web-client/src/router.ts +++ b/web-client/src/router.ts @@ -525,24 +525,6 @@ const router = { }), ); - registerRoute( - '/case-detail/*/file-a-document/all-document-categories', - ifHasAccess({ app }, docketNumber => { - setPageTitle( - `${getPageTitleDocketPrefix(docketNumber)} File a document`, - ); - if (app.getState('currentPage') === 'FileDocumentWizard') { - return app.getSequence('chooseWizardStepSequence')({ - value: 'ViewAllDocuments', - }); - } else { - return app.getSequence('navigateToPathSequence')({ - path: `/case-detail/${docketNumber}/file-a-document`, - }); - } - }), - ); - registerRoute( '/case-detail/*/contacts/*/edit', ifHasAccess({ app }, (docketNumber, contactId) => { diff --git a/web-client/src/views/FileDocument/CompleteDocumentTypeSection.tsx b/web-client/src/views/FileDocument/CompleteDocumentTypeSection.tsx index 3f7c818affa..8726b6e02cb 100644 --- a/web-client/src/views/FileDocument/CompleteDocumentTypeSection.tsx +++ b/web-client/src/views/FileDocument/CompleteDocumentTypeSection.tsx @@ -1,6 +1,5 @@ import { CompleteDocumentTypeSectionRemainder } from './CompleteDocumentTypeSectionRemainder'; import { FormGroup } from '../../ustc-ui/FormGroup/FormGroup'; -import { SelectDocumentWizardOverlay } from './SelectDocumentWizardOverlay'; import { SelectSearch } from '../../ustc-ui/Select/SelectSearch'; import { connect } from '@web-client/presenter/shared.cerebral'; import { @@ -16,7 +15,6 @@ export const CompleteDocumentTypeSection = connect( { completeDocumentTypeSectionHelper: state.completeDocumentTypeSectionHelper, form: state.form, - showModal: state.modal.showModal, updateFileDocumentWizardFormValueSequence: sequences.updateFileDocumentWizardFormValueSequence, updateScreenMetadataSequence: sequences.updateScreenMetadataSequence, @@ -27,7 +25,6 @@ export const CompleteDocumentTypeSection = connect( function CompleteDocumentTypeSection({ completeDocumentTypeSectionHelper, form, - showModal, updateFileDocumentWizardFormValueSequence, updateScreenMetadataSequence, validateSelectDocumentTypeSequence, @@ -83,10 +80,6 @@ export const CompleteDocumentTypeSection = connect( - - {showModal === 'SelectDocumentWizardOverlay' && ( - - )} ); }, diff --git a/web-client/src/views/FileDocument/CompleteSelectDocumentModalDialog.tsx b/web-client/src/views/FileDocument/CompleteSelectDocumentModalDialog.tsx deleted file mode 100644 index e0263a6c411..00000000000 --- a/web-client/src/views/FileDocument/CompleteSelectDocumentModalDialog.tsx +++ /dev/null @@ -1,31 +0,0 @@ -import { CompleteDocumentTypeSectionRemainder } from './CompleteDocumentTypeSectionRemainder'; -import { ModalDialog } from '../ModalDialog'; -import { connect } from '@web-client/presenter/shared.cerebral'; -import { sequences } from '@web-client/presenter/app.cerebral'; -import React from 'react'; - -export const CompleteSelectDocumentModalDialog = connect( - { - cancelSequence: sequences.dismissCreateMessageModalSequence, - confirmSequence: sequences.completeDocumentSelectSequence, - }, - function CompleteSelectDocumentModalDialog({ - cancelSequence, - confirmSequence, - }) { - return ( - - - - ); - }, -); - -CompleteSelectDocumentModalDialog.displayName = - 'CompleteSelectDocumentModalDialog'; diff --git a/web-client/src/views/FileDocument/FileDocumentWizard.tsx b/web-client/src/views/FileDocument/FileDocumentWizard.tsx index 9837382365d..421fb812f5f 100644 --- a/web-client/src/views/FileDocument/FileDocumentWizard.tsx +++ b/web-client/src/views/FileDocument/FileDocumentWizard.tsx @@ -6,7 +6,7 @@ import { FormCancelModalDialog } from '../FormCancelModalDialog'; import { SelectDocumentType } from './SelectDocumentType'; import { SuccessNotification } from '../SuccessNotification'; import { Tab, Tabs } from '../../ustc-ui/Tabs/Tabs'; -import { ViewAllDocuments } from './ViewAllDocuments'; + import { connect } from '@web-client/presenter/shared.cerebral'; import { sequences, state } from '@web-client/presenter/app.cerebral'; import React from 'react'; @@ -42,9 +42,6 @@ export const FileDocumentWizard = connect( - - - diff --git a/web-client/src/views/FileDocument/SelectDocumentType.tsx b/web-client/src/views/FileDocument/SelectDocumentType.tsx index 886a6bd7630..fab0f128900 100644 --- a/web-client/src/views/FileDocument/SelectDocumentType.tsx +++ b/web-client/src/views/FileDocument/SelectDocumentType.tsx @@ -2,17 +2,12 @@ import { Button } from '../../ustc-ui/Button/Button'; import { CompleteDocumentTypeSection } from './CompleteDocumentTypeSection'; import { connect } from '@web-client/presenter/shared.cerebral'; import { sequences } from '@web-client/presenter/app.cerebral'; -import { state } from '@web-client/presenter/app.cerebral'; import React from 'react'; export const SelectDocumentType = connect( { completeDocumentSelectSequence: sequences.completeDocumentSelectSequence, - fileDocumentHelper: state.fileDocumentHelper, formCancelToggleCancelSequence: sequences.formCancelToggleCancelSequence, - gotoViewAllDocumentsSequence: sequences.gotoViewAllDocumentsSequence, - reasons: state.viewAllDocumentsHelper.reasons, - showModal: state.modal.showModal, }, function SelectDocumentType({ completeDocumentSelectSequence, diff --git a/web-client/src/views/FileDocument/SelectDocumentWizardOverlay/ViewAllDocumentsMobile.tsx b/web-client/src/views/FileDocument/SelectDocumentWizardOverlay/ViewAllDocumentsMobile.tsx deleted file mode 100644 index ee0d53ec97d..00000000000 --- a/web-client/src/views/FileDocument/SelectDocumentWizardOverlay/ViewAllDocumentsMobile.tsx +++ /dev/null @@ -1,95 +0,0 @@ -import { Button } from '../../../ustc-ui/Button/Button'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { connect } from '@web-client/presenter/shared.cerebral'; -import { props } from 'cerebral'; -import { sequences } from '@web-client/presenter/app.cerebral'; -import { state } from '@web-client/presenter/app.cerebral'; -import React from 'react'; - -export const ViewAllDocumentsMobile = connect( - { - chooseModalWizardStepSequence: sequences.chooseModalWizardStepSequence, - overlayRef: props.overlayRef, - updateModalValueSequence: sequences.updateModalValueSequence, - viewAllDocumentsHelper: state.viewAllDocumentsHelper, - }, - function ViewAllDocumentsMobile({ - chooseModalWizardStepSequence, - overlayRef, - updateModalValueSequence, - viewAllDocumentsHelper, - }) { - if (overlayRef && overlayRef.current) { - overlayRef.current.scrollTo(0, 0); - } - return ( - -
-
- -
-
-
-
-
-

- All Document Categories -

-

- Select Document Category -

-
-
-
-
- {viewAllDocumentsHelper.sections.map(title => { - return ( -
- -
- ); - })} -
-
- ); - }, -); - -ViewAllDocumentsMobile.displayName = 'ViewAllDocumentsMobile'; diff --git a/web-client/src/views/FileDocument/SelectDocumentWizardOverlay/ViewDocumentCategory.tsx b/web-client/src/views/FileDocument/SelectDocumentWizardOverlay/ViewDocumentCategory.tsx deleted file mode 100644 index b21a46049c1..00000000000 --- a/web-client/src/views/FileDocument/SelectDocumentWizardOverlay/ViewDocumentCategory.tsx +++ /dev/null @@ -1,114 +0,0 @@ -import { Button } from '../../../ustc-ui/Button/Button'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { connect } from '@web-client/presenter/shared.cerebral'; -import { props } from 'cerebral'; -import { sequences } from '@web-client/presenter/app.cerebral'; -import { state } from '@web-client/presenter/app.cerebral'; -import React from 'react'; - -export const ViewDocumentCategory = connect( - { - chooseModalWizardStepSequence: sequences.chooseModalWizardStepSequence, - clearModalSequence: sequences.clearModalSequence, - modal: state.modal, - overlayRef: props.overlayRef, - updateFileDocumentWizardFormValueSequence: - sequences.updateFileDocumentWizardFormValueSequence, - viewAllDocumentsHelper: state.viewAllDocumentsHelper, - }, - function ViewDocumentCategory({ - chooseModalWizardStepSequence, - clearModalSequence, - modal, - overlayRef, - updateFileDocumentWizardFormValueSequence, - viewAllDocumentsHelper, - }) { - if (overlayRef && overlayRef.current) { - overlayRef.current.scrollTo(0, 0); - } - return ( - -
-
- -
-
-
-
-
-

- {modal.category} -

-

- Select document type -

-
-
-
-
- {viewAllDocumentsHelper.categoryMap[modal.category].map(doc => ( -
- -
- ))} -
-
- ); - }, -); - -ViewDocumentCategory.displayName = 'ViewDocumentCategory'; diff --git a/web-client/src/views/FileDocument/SelectDocumentWizardOverlay/WhatDocumentIsThis.tsx b/web-client/src/views/FileDocument/SelectDocumentWizardOverlay/WhatDocumentIsThis.tsx deleted file mode 100644 index 8e3bf23f4c9..00000000000 --- a/web-client/src/views/FileDocument/SelectDocumentWizardOverlay/WhatDocumentIsThis.tsx +++ /dev/null @@ -1,130 +0,0 @@ -import { Button } from '../../../ustc-ui/Button/Button'; -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { connect } from '@web-client/presenter/shared.cerebral'; -import { props } from 'cerebral'; -import { sequences } from '@web-client/presenter/app.cerebral'; -import { state } from '@web-client/presenter/app.cerebral'; -import React from 'react'; - -export const WhatDocumentIsThis = connect( - { - chooseModalWizardStepSequence: sequences.chooseModalWizardStepSequence, - clearModalSequence: sequences.clearModalSequence, - overlayRef: props.overlayRef, - reasons: state.viewAllDocumentsHelper.reasons, - updateModalValueSequence: sequences.updateModalValueSequence, - }, - function WhatDocumentIsThis({ - chooseModalWizardStepSequence, - clearModalSequence, - overlayRef, - reasons, - updateModalValueSequence, - }) { - if (overlayRef && overlayRef.current) { - overlayRef.current.scrollTo(0, 0); - } - return ( - -
-
- -
-
-
-
-
-

- What is this document for? -

-

- Here are common reasons you might be filing a document. - Underneath each is a list of document types that are usually - associated with that reason. -

-
-
-
- - {reasons.map(({ categories, reason }) => { - return ( - -
-
-
-

- {reason} -

-
-
-
-
- {categories.map(({ category }) => { - return ( -
- -
- ); - })} -
-
- ); - })} - -
-
- -
-
-
- ); - }, -); - -WhatDocumentIsThis.displayName = 'WhatDocumentIsThis'; diff --git a/web-client/src/views/FileDocument/SelectDocumentWizardOverlay/index.tsx b/web-client/src/views/FileDocument/SelectDocumentWizardOverlay/index.tsx deleted file mode 100644 index fbe55c63afe..00000000000 --- a/web-client/src/views/FileDocument/SelectDocumentWizardOverlay/index.tsx +++ /dev/null @@ -1,32 +0,0 @@ -import { Overlay } from '../../../ustc-ui/Overlay/Overlay'; -import { Tab, Tabs } from '../../../ustc-ui/Tabs/Tabs'; -import { ViewAllDocumentsMobile } from './ViewAllDocumentsMobile'; -import { ViewDocumentCategory } from './ViewDocumentCategory'; -import { WhatDocumentIsThis } from './WhatDocumentIsThis'; -import React from 'react'; - -export const SelectDocumentWizardOverlay = () => { - const ref = React.createRef(); - - return ( - - - - - - - - - - - - - - ); -}; - -SelectDocumentWizardOverlay.displayName = 'SelectDocumentWizardOverlay'; diff --git a/web-client/src/views/FileDocument/ViewAllDocuments.tsx b/web-client/src/views/FileDocument/ViewAllDocuments.tsx deleted file mode 100644 index eef214692f7..00000000000 --- a/web-client/src/views/FileDocument/ViewAllDocuments.tsx +++ /dev/null @@ -1,13 +0,0 @@ -import { ViewAllDocumentsDesktop } from './ViewAllDocumentsDesktop'; -import { connect } from '@web-client/presenter/shared.cerebral'; -import React from 'react'; - -export const ViewAllDocuments = connect({}, function ViewAllDocuments() { - return ( - - - - ); -}); - -ViewAllDocuments.displayName = 'ViewAllDocuments'; diff --git a/web-client/src/views/FileDocument/ViewAllDocumentsDesktop.tsx b/web-client/src/views/FileDocument/ViewAllDocumentsDesktop.tsx deleted file mode 100644 index ff8acfb8ace..00000000000 --- a/web-client/src/views/FileDocument/ViewAllDocumentsDesktop.tsx +++ /dev/null @@ -1,120 +0,0 @@ -import { Accordion, AccordionItem } from '../../ustc-ui/Accordion/Accordion'; -import { Button } from '../../ustc-ui/Button/Button'; -import { CompleteSelectDocumentModalDialog } from './CompleteSelectDocumentModalDialog'; -import { FormCancelModalDialog } from '../FormCancelModalDialog'; -import { connect } from '@web-client/presenter/shared.cerebral'; -import { sequences } from '@web-client/presenter/app.cerebral'; -import { state } from '@web-client/presenter/app.cerebral'; -import React from 'react'; - -export const ViewAllDocumentsDesktop = connect( - { - closeModalAndReturnToCaseDetailSequence: - sequences.closeModalAndReturnToCaseDetailSequence, - formCancelToggleCancelSequence: sequences.formCancelToggleCancelSequence, - navigateBackSequence: sequences.navigateBackSequence, - openCompleteSelectDocumentTypeModalSequence: - sequences.openCompleteSelectDocumentTypeModalSequence, - showModal: state.modal.showModal, - updateFileDocumentWizardFormValueSequence: - sequences.updateFileDocumentWizardFormValueSequence, - viewAllDocumentsHelper: state.viewAllDocumentsHelper, - }, - function ViewAllDocumentsDesktop({ - closeModalAndReturnToCaseDetailSequence, - formCancelToggleCancelSequence, - navigateBackSequence, - openCompleteSelectDocumentTypeModalSequence, - showModal, - updateFileDocumentWizardFormValueSequence, - viewAllDocumentsHelper, - }) { - return ( - -
-
-
-

- All Document Categories -

-

- Expand a document category and select the document type you wish - to file. -

- - {viewAllDocumentsHelper.sections.map(title => { - return ( - -
- {viewAllDocumentsHelper.categoryMap[title].map(doc => ( - - ))} -
-
- ); - })} -
-
-
-
- - - {showModal === 'FormCancelModalDialog' && ( - - )} - {showModal === 'CompleteSelectDocumentModalDialog' && ( - - )} -
-
-
- ); - }, -); - -ViewAllDocumentsDesktop.displayName = 'ViewAllDocumentsDesktop'; From dad2a2e1b9d652745b91a87627fbf882a1667810 Mon Sep 17 00:00:00 2001 From: Nechama Krigsman Date: Mon, 16 Sep 2024 16:14:41 -0400 Subject: [PATCH 2/7] 10339: WIP make accordion a generic component; --- .../src/ustc-ui/Accordion/Accordion.tsx | 121 ++++++------------ 1 file changed, 36 insertions(+), 85 deletions(-) diff --git a/web-client/src/ustc-ui/Accordion/Accordion.tsx b/web-client/src/ustc-ui/Accordion/Accordion.tsx index e1758d97faa..8dd8725765d 100644 --- a/web-client/src/ustc-ui/Accordion/Accordion.tsx +++ b/web-client/src/ustc-ui/Accordion/Accordion.tsx @@ -1,15 +1,7 @@ import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import { Mobile, NonMobile } from '@web-client/ustc-ui/Responsive/Responsive'; -import { connect } from '@web-client/presenter/shared.cerebral'; -import { - decorateWithPostCallback, - useCerebralStateFactory, -} from '../Utils/useCerebralState'; import { map } from '../Utils/ElementChildren'; -import { pick, uniqueId } from 'lodash'; -import { props } from 'cerebral'; -import { sequences } from '@web-client/presenter/app.cerebral'; -import { state } from '@web-client/presenter/app.cerebral'; +import { uniqueId } from 'lodash'; import React, { ReactNode, useState } from 'react'; import classNames from 'classnames'; @@ -32,7 +24,7 @@ export function AccordionItem(properties: { return <>; } -const renderAccordionFactory = ({ activeKey, headingLevel, setTab }) => +const renderAccordionFactory = ({ headingLevel }) => function AccordionContent(child, index) { const { children, @@ -45,27 +37,28 @@ const renderAccordionFactory = ({ activeKey, headingLevel, setTab }) => id, title, } = child.props; - let { itemName } = child.props; - itemName = itemName || `item-${index}`; + const [isActive, setIsActive] = useState(false); + const itemButtonId = id || uniqueId(`ustc-ui-accordion-item-button-${index}`); const itemContentId = (id && `${id}-item-content`) || uniqueId(`ustc-ui-accordion-item-content-${index}`); + const HeadingElement = `h${headingLevel || 2}`; - const isActiveItem = itemName === activeKey; - const expandedText = (isActiveItem && 'true') || 'false'; + const expandedText = (isActive && 'true') || 'false'; if (!title) { return null; } + const buttonProps = { 'aria-controls': itemContentId, 'aria-expanded': expandedText, className: 'usa-accordion__button grid-container', id: itemButtonId, - onClick: () => setTab(itemName), + onClick: () => setIsActive(!isActive), type: 'button', }; @@ -108,7 +101,7 @@ const renderAccordionFactory = ({ activeKey, headingLevel, setTab }) => - {isActiveItem && ( + {isActive && (
); }; -type AccordionProps = { - bind?: any; +export const Accordion = ({ + bordered, + children, + className, + headingLevel, + id, + role, +}: { bordered?: boolean; children: ReactNode; className?: string; headingLevel?: string; id?: string; - onSelect?: () => void; role?: string; - simpleSetter?: any; -}; - -const accordionDependencies = { - simpleSetter: sequences.cerebralBindSimpleSetStateSequence, - value: state[props.bind], +}) => { + const passThroughProps = { role }; + + const AccordionContent = renderAccordionFactory({ + headingLevel, + }); + return ( +
+ {map(children, AccordionContent)} +
+ ); }; - -export const Accordion = connect( - accordionDependencies, - function Accordion(accordionProps) { - const { - bind, - bordered, - children, - className, - headingLevel, - id, - onSelect, - simpleSetter, - value, - } = accordionProps; - const passThroughProps = pick(accordionProps, ['role']); - - let activeKey, setTab; - - if (bind) { - const useCerebralState = useCerebralStateFactory(simpleSetter, value); - [activeKey, setTab] = useCerebralState(bind); - } else { - [activeKey, setTab] = useState(); - } - - const toggleAlreadySelectedValueDecorator = delegate => { - return delegatedValue => { - if (activeKey === delegatedValue) { - delegatedValue = '~no item selected~'; - } - delegate(delegatedValue); - }; - }; - - setTab = toggleAlreadySelectedValueDecorator(setTab); - setTab = decorateWithPostCallback(setTab, onSelect); - - const AccordionContent = renderAccordionFactory({ - activeKey, - headingLevel, - setTab, - }); - return ( -
- {map(children, AccordionContent)} -
- ); - }, -); - -Accordion.displayName = 'Accordion'; From b787800bf21b356e4124e3ea05a5905026eee4cc Mon Sep 17 00:00:00 2001 From: Zachary Rogers Date: Mon, 16 Sep 2024 15:39:37 -0700 Subject: [PATCH 3/7] 10339: Simplify Accordion to be a generic component without knowledge of global state. --- .../src/ustc-ui/Accordion/Accordion.tsx | 172 +++++------------- web-client/src/views/BeforeStartingCase.tsx | 24 +-- .../src/views/Dashboards/FilingFeeOptions.tsx | 8 +- .../StartCaseUpdated/FilePetitionStep7.tsx | 19 +- 4 files changed, 53 insertions(+), 170 deletions(-) diff --git a/web-client/src/ustc-ui/Accordion/Accordion.tsx b/web-client/src/ustc-ui/Accordion/Accordion.tsx index 8dd8725765d..38843fbc4b9 100644 --- a/web-client/src/ustc-ui/Accordion/Accordion.tsx +++ b/web-client/src/ustc-ui/Accordion/Accordion.tsx @@ -1,149 +1,61 @@ -import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; -import { Mobile, NonMobile } from '@web-client/ustc-ui/Responsive/Responsive'; -import { map } from '../Utils/ElementChildren'; import { uniqueId } from 'lodash'; - -import React, { ReactNode, useState } from 'react'; +import React, { HTMLAttributes, ReactNode, useState } from 'react'; import classNames from 'classnames'; -/** - * AccordionItem: This is a strange hollow component that is being used in renderAccordionFactory + Accordion to make a styled component - */ -// eslint-disable-next-line @typescript-eslint/no-unused-vars -export function AccordionItem(properties: { - children: React.ReactNode; - customClassName?: string; - customTitleClassName?: string; - displayIcon?: boolean; - iconClassName?: string; - iconSize?: string; - iconTypes?: string[]; - id?: string; - title?: string; -}) { - return <>; -} - -const renderAccordionFactory = ({ headingLevel }) => - function AccordionContent(child, index) { - const { - children, - customClassName, - customTitleClassName, - displayIcon = false, - iconClassName, - iconSize, - iconTypes, - id, - title, - } = child.props; - - const [isActive, setIsActive] = useState(false); - - const itemButtonId = - id || uniqueId(`ustc-ui-accordion-item-button-${index}`); - const itemContentId = - (id && `${id}-item-content`) || - uniqueId(`ustc-ui-accordion-item-content-${index}`); - - const HeadingElement = `h${headingLevel || 2}`; - const expandedText = (isActive && 'true') || 'false'; - - if (!title) { - return null; - } - - const buttonProps = { - 'aria-controls': itemContentId, - 'aria-expanded': expandedText, - className: 'usa-accordion__button grid-container', - id: itemButtonId, - onClick: () => setIsActive(!isActive), - type: 'button', - }; - - const baseTitleClassName = 'accordion-item-title grid-col-8'; - const titleClassName = classNames(baseTitleClassName, customTitleClassName); - - const mobileBaseTitleClassName = 'accordion-item-title grid-col-10'; - const mobileTitleClassName = classNames( - mobileBaseTitleClassName, - customTitleClassName, - ); - - return ( - <> - - - - {isActive && ( -
- {children} -
- )} - - ); - }; - export const Accordion = ({ - bordered, children, className, - headingLevel, - id, - role, + ...props }: { - bordered?: boolean; children: ReactNode; className?: string; - headingLevel?: string; - id?: string; - role?: string; -}) => { - const passThroughProps = { role }; - - const AccordionContent = renderAccordionFactory({ - headingLevel, - }); +} & HTMLAttributes) => { return (
- {map(children, AccordionContent)} + {children}
); }; + +export const AccordionItem = ({ + children, + className, + initiallyOpen = false, + title, +}: { + initiallyOpen?: boolean; + className?: string; + children: ReactNode; + title: string; +}) => { + const [isOpen, setIsOpen] = useState(initiallyOpen); + const id = uniqueId('accordion-item-'); + + return ( + <> +

+ +

+ + + ); +}; diff --git a/web-client/src/views/BeforeStartingCase.tsx b/web-client/src/views/BeforeStartingCase.tsx index 9dde476090c..258cd4f43b0 100644 --- a/web-client/src/views/BeforeStartingCase.tsx +++ b/web-client/src/views/BeforeStartingCase.tsx @@ -255,25 +255,18 @@ BeforeStartingCase.displayName = 'BeforeStartingCase'; function CaseInfoAccordion({ isPetitioner }: { isPetitioner: boolean }) { return (
- {isPetitioner && ( - - + + {isPetitioner && ( +
{ "To file a joint Petition with your spouse, you must have the spouse's consent. If you do not have your spouse's consent, select “Myself” as the person who is filing." }
-
- )} - {isPetitioner && ( - + )} + {isPetitioner && ( @@ -295,11 +288,8 @@ function CaseInfoAccordion({ isPetitioner }: { isPetitioner: boolean }) { }
- - )} - + )}
{`If ${isPetitioner ? "you're filing for" : 'the petitioner is'} a business, you'll need to complete and - submit the Corporate Disclosure Statement.`} + submit the Corporate Disclosure Statement.`}
{"Download and fill out the form if you haven't already done so:"} diff --git a/web-client/src/views/Dashboards/FilingFeeOptions.tsx b/web-client/src/views/Dashboards/FilingFeeOptions.tsx index cb99e634fd2..2ba0680750e 100644 --- a/web-client/src/views/Dashboards/FilingFeeOptions.tsx +++ b/web-client/src/views/Dashboards/FilingFeeOptions.tsx @@ -31,12 +31,8 @@ export const FilingFeeOptions = function () {


- - + +
Mail-in payment
diff --git a/web-client/src/views/StartCaseUpdated/FilePetitionStep7.tsx b/web-client/src/views/StartCaseUpdated/FilePetitionStep7.tsx index d5bb0880b69..95829941f2a 100644 --- a/web-client/src/views/StartCaseUpdated/FilePetitionStep7.tsx +++ b/web-client/src/views/StartCaseUpdated/FilePetitionStep7.tsx @@ -43,16 +43,8 @@ export const FilePetitionStep7 = connect(
- - + +
Make checks/money orders payable to:{' '} @@ -66,14 +58,7 @@ export const FilePetitionStep7 = connect(
-
- From 9473c4a3be8cc2d085e76e788e227b0483dadad9 Mon Sep 17 00:00:00 2001 From: Zachary Rogers Date: Mon, 16 Sep 2024 16:12:52 -0700 Subject: [PATCH 4/7] 10339: Make accoordian be able to accept custom styles --- web-client/src/styles/custom.scss | 4 ++++ web-client/src/ustc-ui/Accordion/Accordion.tsx | 8 ++++++-- web-client/src/views/Dashboards/FilingFeeOptions.tsx | 2 +- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/web-client/src/styles/custom.scss b/web-client/src/styles/custom.scss index b3c54edd1f6..75e85c20161 100644 --- a/web-client/src/styles/custom.scss +++ b/web-client/src/styles/custom.scss @@ -2407,4 +2407,8 @@ button.change-scanner-button { .stepper-line-height { line-height: 18px; +} + +.bg-gray { + background-color: color($theme-color-base-lightest); } \ No newline at end of file diff --git a/web-client/src/ustc-ui/Accordion/Accordion.tsx b/web-client/src/ustc-ui/Accordion/Accordion.tsx index 38843fbc4b9..ca5fc806077 100644 --- a/web-client/src/ustc-ui/Accordion/Accordion.tsx +++ b/web-client/src/ustc-ui/Accordion/Accordion.tsx @@ -41,7 +41,7 @@ export const AccordionItem = ({ return ( <> -

+

- - +