Files
super-app/App/common/modals/modalViewResolver.tsx
2024-03-27 15:06:03 +00:00

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 />;
}
}