Untitled
unknown
plain_text
a month ago
41 kB
3
Indexable
import React, { useEffect, useState } from 'react'; import { Section, Page, Header, Row, Column, Button, Para, Selectbox } from '@d-lift/uxcomponents'; import { withPage, Navigate, useAppState } from '@d-lift/core'; import PageData from '@/UXModule/bcDesktopWayfinder/aplDesktopWayfinderData.json'; import CPUtil from '@/Util/CPUtil'; import ButtonNavigation from '@/UXModule/ButtonNavigation/ButtonNavigation'; import './APLCN.scss'; import caseDataJSON from './CaseData.json'; const pageConfig = { PageName: 'APLCN', Description: 'Case And Notice Page', ContextRoot: 'Appeals', ContentManager: true, PageType: 'workflow', WorkFlowNavigation: true, TemplateOptions: { cardWorkflow: true }, pageId: 'APLCN', ShowTitle: false, }; const APLCN = () => { const [visibleCard, setVisibleCard] = useState(null); const [filteredCaseNumberList, setFilteredCaseNumberList] = useState([]); const [personList, setPersonList] = useState([]); const defaultData = { appealStatus: '', caseNumber: '', personId: '', appealingIndvId: '', }; const [APLCN] = useAppState('APLCN', defaultData); useEffect(() => { CPUtil.setValueInAppcontext('currentStep', 3); CPUtil.setValueInAppcontext('wayFinderSteps', PageData); filterCases(); }, []); const filterCases = () => { const programCd = CPUtil.getValueFromAppContext('APLPR.programCd'); let filteredCases = []; if (programCd === 'snap') { filteredCases = caseDataJSON.caseData.filter(caseItem => caseItem.programCode === 'FS'); } else if (programCd === 'ff') { filteredCases = caseDataJSON.caseData.filter(caseItem => caseItem.programCode === 'TA'); } setFilteredCaseNumberList(filteredCases.map(caseItem => ({ value: caseItem.caseNumber, label: caseItem.caseNumber, }))); }; const handleCaseSelection = (selectedCaseNumber) => { const selectedCase = caseDataJSON.caseData.find(caseItem => caseItem.caseNumber === selectedCaseNumber); if (selectedCase) { setPersonList(selectedCase.person.map(person => ({ value: person.personId, label: `${person.firstName} ${person.lastName} ${person.middleInitial || ''}`.trim(), }))); } else { setPersonList([]); } }; return ( <Page> <Section className="container"> <Header labelKey="case_header" /> <Header header-size="2" className="mt-4" labelKey="case_subheader" /> <Row> <Column> <Button className="col-auto mx-2 mb-2" labelKey="caseNumber_btn_text" click={() => setVisibleCard('case')} /> </Column> <Column> <Button className="col-auto mx-2 mb-2" labelKey="applNumber_btn_text" click={() => setVisibleCard('appl')} /> </Column> </Row> {visibleCard === 'case' && ( <Section id="caseNumber_card" className="dynamic-fields left-button mb-4"> <Selectbox id="case_question1" labelKey="case_question1" defaultOption="true" defaultOptionValue="SEL" defaultOptionLabelKey="common_selectone" list={filteredCaseNumberList} model="APLCN.caseNumber" required="true" validationRules="required" errormessages='{{"required": "common_mandatory_error"}}' change={(e) => handleCaseSelection(e.target.value)} /> <Para className="ux-helper-text" labelKey="case_question_helper_text" /> <Selectbox id="case_question2" labelKey="case_question2" defaultOption="true" defaultOptionValue="SEL" defaultOptionLabelKey="selectIndividual_dropdown_text" list={personList} model="APLCN.personId" required="true" validationRules="required" errormessages='{{"required": "common_mandatory_error"}}' /> </Section> )} {visibleCard === 'appl' && ( <Section id="applNumber_card" className="dynamic-fields right-button mb-4"> <Selectbox id="application_question" labelKey="application_question" defaultOption="true" defaultOptionValue="SEL" defaultOptionLabelKey="common_selectone" model="APLCN.appealingIndvId" required="true" validationRules="required" errormessages='{{"required": "common_mandatory_error"}}' /> <Para className="ux-helper-text" labelKey="application_question_helper_text" /> </Section> )} <Header header-size="2" className="mt-4" labelKey="selectNotice_subheader" /> <Selectbox id="appeal_reason" labelKey="selectNotice_question" defaultOption="true" defaultOptionValue="SEL" defaultOptionLabelKey="selectDoc_dropdown_text" /> <Para className="ux-helper-text" labelKey="case_question_helper_text" /> </Section> <ButtonNavigation onNext={() => Navigate.to('/Appeals/AppealsAppeallantInfo/APLAI')} onBack={() => Navigate.to('/Appeals/AppealsContinuationOfBenefits/APLCB')} /> </Page> ); }; export default withPage(pageConfig, APLCN); )} )} ) } }))) } } }))) } } } }) } } }
Editor is loading...
Leave a Comment