Untitled

 avatar
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