58 lines
1.9 KiB
TypeScript
58 lines
1.9 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 {
|
|
PREMIUM_DETAILS_BOTTOM_SHEET,
|
|
TITLE_WITH_FEEDBACK_PILL_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";
|
|
|
|
export const GetModalView = {
|
|
getModal: (
|
|
modal: ModalView,
|
|
handleModalClick: (cta: CtaData) => void
|
|
): JSX.Element => {
|
|
const { modalName, modalData, modalStyle } = modal;
|
|
return resolveModalView(modalName, modalData, modalStyle, handleModalClick);
|
|
},
|
|
};
|
|
|
|
function resolveModalView(
|
|
modalName: string,
|
|
modalData: GenericWidgetData,
|
|
modalStyle: ViewStyle | undefined,
|
|
handleModalClick: (cta: CtaData) => 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}
|
|
/>
|
|
);
|
|
default:
|
|
return <View />;
|
|
}
|
|
} |