113 lines
3.8 KiB
TypeScript
113 lines
3.8 KiB
TypeScript
import React from "react";
|
|
import { View, ViewStyle } from "react-native";
|
|
import TitleWithFeedbackPillBottomSheet from "../../../components/bottomsheet/title-with-feed-back-bottom-sheet/TitleWithFeedBackBottomSheet";
|
|
import PremiumDetailsBottomSheet from "../../../components/bottomsheet/title-with-list-bottom-sheet/TitleWithListBottomSheet";
|
|
import TitleWithStepsBottomSheet from "../../../components/bottomsheet/title-with-steps-bottom-sheet/TitleWithStepsBottomSheet";
|
|
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,
|
|
} from "../constants/ModalNameConstants";
|
|
import { CtaData } from "../interface";
|
|
import { ModalView } from "../interface/modals/ModalView";
|
|
import { GenericWidgetData } from "../interface/widgets/Widget";
|
|
import TitleSubtitleWithDropdownBottomSheet from "../../../components/bottomsheet/title-subtitle-with-dropdown-bottom-sheet/TitleSubtitleWithDropdownBottomSheet";
|
|
import { MemberDetailBottomSheet } from "../../../components/bottomsheet/member-details-bottom-sheet/MemberDetailsBottomSheet";
|
|
import { PolicyAmountBottomSheet } from "../../../components/bottomsheet/policy-amount-bottom-sheet/PolicyAmountBottomSheet";
|
|
import { GenericActionPayload } from "../actions/GenericAction";
|
|
import TitleWithLeftRightButtonsBottomSheet from "../../../components/bottomsheet/title-with-left-right-buttons-bottom-sheet/TitleWithLeftRightButtonsBottomSheet";
|
|
|
|
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}
|
|
/>
|
|
);
|
|
default:
|
|
return <View />;
|
|
}
|
|
}
|