Files
super-app/App/common/modals/modalViewResolver.tsx
Kshitij Pramod Ghongadi 377c2c0b80 NTP-6602 | Feature | Multi Plan For all (#12981)
Co-authored-by: SANDEEP KUMAR <sandeep.ku@navi.com>
Co-authored-by: Somarapu Vamshi <somarapu.vamshi@navi.com>
Co-authored-by: Shivam Goyal <shivam.goyal@navi.com>
Co-authored-by: vedant aggarwal <vedant.aggarwal@navi.com>
Co-authored-by: Mehul Garg <mehul.garg@navi.com>
Co-authored-by: Hardik Chaudhary <hardik.chaudhary@navi.com>
Co-authored-by: Aditya Narayan Malik <aditya.narayan@navi.com>
Co-authored-by: Shaurya Rehan <shaurya.rehan@navi.com>
Co-authored-by: Divyesh Shinde <divyesh.shinde@navi.com>
Co-authored-by: Mohit Rajput <mohit.rajput@navi.com>
Co-authored-by: sharmapoojabalrambhai <sharma.balrambhai@navi.com>
Co-authored-by: Prajjaval Verma <prajjaval.verma@navi.com>
2024-10-21 18:27:59 +00:00

125 lines
3.5 KiB
TypeScript

import React from "react";
import { View, ViewStyle } from "react-native";
import {
MemberDetailBottomSheet,
PolicyAmountBottomSheet,
PremiumDetailsBottomSheet,
TitleSubtitleWithDropdownBottomSheet,
TitleWithFeedbackPillBottomSheet,
TitleWithLeftRightButtonsBottomSheet,
TitleWithStepsBottomSheet,
TopSectionExpandableBottomSheet,
} from "../../../components/bottomsheet";
import { GenericActionPayload } from "../actions/GenericAction";
import {
MEMBER_DETAILS_BOTTOM_SHEET,
POLICY_AMOUNT_BOTTOM_SHEET,
PREMIUM_DETAILS_BOTTOM_SHEET,
TITLE_SUBTITLE_WITH_DROPDOWN_BOTTOM_SHEET,
TITLE_WITH_FEEDBACK_PILL_BOTTOM_SHEET,
TITLE_WITH_LEFT_RIGHT_BUTTONS_BOTTOM_SHEET,
TITLE_WITH_STEPS_BOTTOM_SHEET,
TOP_SECTION_WITH_EXPANDABLE_CONTENT_BOTTOM_SHEET,
} from "../constants";
import { CtaData } from "../interface";
import { ModalView } from "../interface/modals/ModalView";
import { GenericWidgetData } from "../interface/widgets/Widget";
export const GetModalView = {
getModal: (
modal: ModalView,
handleModalClick: (cta: CtaData) => void,
handleActions: (
value?: any | undefined | null,
actionPayload?: GenericActionPayload,
) => void,
): JSX.Element => {
const { modalName, modalData, modalStyle } = modal;
return resolveModalView(
modalName,
modalData,
modalStyle,
handleModalClick,
handleActions,
);
},
};
function resolveModalView(
modalName: string,
modalData: GenericWidgetData,
modalStyle: ViewStyle | undefined,
handleModalClick: (cta: CtaData) => void,
handleActions: (
value?: any | undefined | null,
actionPayload?: GenericActionPayload,
) => void,
) {
switch (modalName) {
case PREMIUM_DETAILS_BOTTOM_SHEET:
return (
<PremiumDetailsBottomSheet
bottomSheetData={modalData}
handleModalClick={handleModalClick}
/>
);
case TITLE_WITH_FEEDBACK_PILL_BOTTOM_SHEET:
return (
<TitleWithFeedbackPillBottomSheet
bottomSheetData={modalData}
handleModalClick={handleModalClick}
/>
);
case TITLE_WITH_STEPS_BOTTOM_SHEET:
return (
<TitleWithStepsBottomSheet
bottomSheetData={modalData}
handleModalClick={handleModalClick}
/>
);
case TITLE_SUBTITLE_WITH_DROPDOWN_BOTTOM_SHEET:
return (
<TitleSubtitleWithDropdownBottomSheet
bottomSheetData={modalData}
handleModalClick={handleModalClick}
/>
);
case MEMBER_DETAILS_BOTTOM_SHEET:
return (
<MemberDetailBottomSheet
bottomSheetData={modalData}
handleModalClick={handleModalClick}
handleActions={handleActions}
/>
);
case POLICY_AMOUNT_BOTTOM_SHEET:
return (
<PolicyAmountBottomSheet
bottomSheetData={modalData}
handleModalClick={handleModalClick}
handleActions={handleActions}
/>
);
case TITLE_WITH_LEFT_RIGHT_BUTTONS_BOTTOM_SHEET:
return (
<TitleWithLeftRightButtonsBottomSheet
bottomSheetData={modalData}
handleModalClick={handleModalClick}
handleActions={handleActions}
/>
);
case TOP_SECTION_WITH_EXPANDABLE_CONTENT_BOTTOM_SHEET:
return (
<TopSectionExpandableBottomSheet
bottomSheetData={modalData}
handleModalClick={handleModalClick}
handleActions={handleActions}
/>
);
default:
return <View />;
}
}