Untitled

 avatar
unknown
plain_text
a month 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);
                            }, []);

                                useEffect(() => {
                                            const programCd = CPUtil.getValueFromAppContext('APLPR.programCd');
                                                    let filteredCases = [];

                                                            if (programCd === 'snap') {
                                                                            filteredCases = caseDataJSON.caseData.filter((c) => c.programCode === 'FS');
                                                            } else if (programCd === 'ff') {
                                                                            filteredCases = caseDataJSON.caseData.filter((c) => c.programCode === 'TA');
                                                            }

                                                                    setFilteredCaseNumberList(
                                                                                    filteredCases.map((c) => ({ value: c.caseNumber, label: c.caseNumber }))
                                                                    );
                                }, []);

                                    useEffect(() => {
                                                if (APLCN.caseNumber) {
                                                                const selectedCase = caseDataJSON.caseData.find((c) => c.caseNumber === APLCN.caseNumber);
                                                                            if (selectedCase && selectedCase.persons) {
                                                                                                setPersonList(
                                                                                                                        selectedCase.persons.map((p) => ({
                                                                                                                                                    value: p.personId,
                                                                                                                                                                            label: `${p.firstName} ${p.lastName} ${p.middleInitial || ''}`.trim(),
                                                                                                                        }))
                                                                                                );
                                                                            }
                                                }
                                    }, [APLCN.caseNumber]);

                                        const onNext = () => {
                                                    CPUtil.setValueInAppcontext('currentStep', 4);
                                                            Navigate.to('/Appeals/AppealsAppeallantInfo/APLAI');
                                        };

                                            const onBack = () => {
                                                        Navigate.to('/Appeals/AppealsContinuationOfBenefits/APLCB');
                                            };

                                                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"}}'
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        />
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                <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={onNext} onBack={onBack} />
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            </Page>
                                                );
};

export default withPage(pageConfig, APLCN);
                                                                                                                                                                                                                                                                                                        )}
                                                                                                                                                                                                                                                                                        )}
                                                )
                                            }
                                        }
                                                                                                                        }))
                                                                                                )
                                                                            }
                                                }
                                    })
                                                                    )
                                                            }
                                                            }
                                })
                            })
                    }
}
}
Editor is loading...
Leave a Comment