Untitled
unknown
plain_text
7 months ago
41 kB
4
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