import React, { useCallback } from "react"; import { Text, VStack, HStack, Image, Spacer, Radio, View } from "native-base"; import { illustrations, EnhancedTouchableOpacity } from "@flip.id/ui-kit"; import type { IFlipColors } from "../../../../config/interfaces/IFlipColors"; import type { IColors } from "native-base/lib/typescript/theme/base/colors"; import type { AccessibilityProps, ImageSourcePropType } from "react-native"; export enum TransferMethodType { saldo_flip = "saldo_flip", regular_bank = "regular_bank", virtual_account = "virtual_account", } interface TransferMethodCardProps { title?: string; sideTitle?: string; as?: React.ComponentType; subtitle: string; sideSubtitle?: string; colorSideSubTitle?: IFlipColors | IColors; colorBadge?: IFlipColors | IColors; badgeLabel?: string; icon?: ImageSourcePropType; type?: keyof typeof TransferMethodType; onPress?: () => void; } export const TransferMethodCard: React.FC< TransferMethodCardProps & AccessibilityProps > = (props) => { const { as, icon, onPress, title, type, subtitle, sideTitle, sideSubtitle, colorSideSubTitle, colorBadge, badgeLabel, ...rest } = props; const [isActive, setIsActive] = React.useState(false); const _icon = useCallback(() => { switch (type) { case TransferMethodType.saldo_flip: return illustrations.logo.flip; case TransferMethodType.regular_bank: return illustrations.logo.bank_bri; case TransferMethodType.virtual_account: return illustrations.logo.bank_bri; default: return illustrations.logo.flip; } }, [type]); const onPressButton = () => { onPress && onPress(); setIsActive(!isActive); }; return ( {type === TransferMethodType.saldo_flip && ( {title}{" "} {sideTitle && ( ({sideTitle}) )} )} {subtitle}{" "} {sideSubtitle && ( ({sideSubtitle}) )} {badgeLabel && ( {badgeLabel} )} ); }; export default TransferMethodCard;