Files
super-app/components/widgets/card-with-icon-widget/CardWithIconWidget.tsx
Balrambhai Sharma 5d2d5e7f88 NTP-11746 | Feature Home Visit (#13681)
Co-authored-by: Somarapu Vamshi <somarapu.vamshi@navi.com>
Co-authored-by: Kshitij Pramod Ghongadi <kshitij.pramod@navi.com>
Co-authored-by: Sandeep Kumar <sandeep.ku@navi.com>
2024-11-20 14:39:14 +00:00

66 lines
2.2 KiB
TypeScript

import { TouchableOpacity, View } from "react-native";
import { commonStyles } from "../../../App/Container/Navi-Insurance/Styles";
import { GenericActionPayload } from "../../../App/common/actions/GenericAction";
import { CtaData } from "../../../App/common/interface";
import { CardWithIconWidgetData } from "../../../App/common/interface/widgets/widgetData/CardWithIconWidgetData";
import { StyledImage } from "../../StyledImage";
import CtaButton from "../../reusable/cta-button/CtaButton";
import { StyledText } from "../styled-text/StyledText";
import { styles } from "./CardWithIconWidgetStyle";
const CardWithIconWidget = ({
widgetData,
handleActions,
handleClick,
}: {
widgetData: CardWithIconWidgetData;
handleActions: (
value?: any | undefined | null,
screenActionPayload?: GenericActionPayload,
) => void;
handleClick?: (cta: CtaData) => void;
}) => {
const cardClick = () => {
handleClick && widgetData.cta && handleClick(widgetData.cta);
};
return (
<TouchableOpacity
style={
widgetData?.containerStyle
? widgetData?.containerStyle
: styles.background
}
onPress={cardClick}
activeOpacity={1}
>
<View style={[styles.columnContainer, widgetData?.columnContainerStyle]}>
{widgetData.title?.text && (
<StyledText textFieldData={widgetData.title} />
)}
{widgetData.title?.text && widgetData.subtitle && (
<View style={commonStyles.verticalSpacer4} />
)}
{widgetData.subtitle?.text && (
<StyledText textFieldData={widgetData.subtitle} />
)}
{widgetData.button && widgetData.subtitle && (
<View style={commonStyles.verticalSpacer16} />
)}
{widgetData.button && (
<CtaButton style={widgetData.button.buttonStyle}>
{widgetData.button.title && (
<StyledText textFieldData={widgetData.button.title} />
)}
</CtaButton>
)}
</View>
<View>
{widgetData.rightIcon && (
<StyledImage imageFieldData={widgetData.rightIcon} />
)}
</View>
</TouchableOpacity>
);
};
export default CardWithIconWidget;