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>
125 lines
3.5 KiB
TypeScript
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 />;
|
|
}
|
|
}
|