import { ForwardMedium } from "../../../../icons/navigation"; import { TopupSpecial } from "../../../../icons/special"; import { Flex, HStack, IconButton, Image, Text, View, VStack, } from "native-base"; import type { InterfaceHStackProps } from "native-base/lib/typescript/components/primitives/Stack/HStack"; import React, { useCallback, useMemo } from "react"; import { Information, Warning } from "../../../../icons/indication"; import Badge from "../../Badge"; import { BalanceCardProps, EmoneyBalanceTypes } from "./types"; export const BalanceCard: React.FC = ( props ) => { const { saldoLabel, saldoValue, rightComponent, koinLabel, koinValue, emoneyStatus, onInfoPress, emoneyImage, emoneyImageProps, onFailPressed, labelFail, onProcessingPressed, labelProcessing, ...rest } = props; const isEmoney = useMemo( () => ({ success: emoneyStatus === EmoneyBalanceTypes.success, fail: emoneyStatus === EmoneyBalanceTypes.rejected, onProgress: emoneyStatus === EmoneyBalanceTypes.on_progress, }), [emoneyStatus] ); const handleInfoPress = useCallback(() => { onInfoPress?.(); }, [onInfoPress]); return ( {saldoLabel} {isEmoney.success && ( )} {saldoValue} {isEmoney.success && ( {`${koinLabel} ${koinValue}`} } _icon={{ color: "neutral.SecondaryText" }} variant="neutral" bg="neutral.White" padding="0px" /> )} {isEmoney.fail && ( } onPress={onFailPressed} rightIcon={ } variant="rounded" colorScheme="crimsonRed" color="crimsonRed.Plus2" /> )} {isEmoney.onProgress && ( } onPress={onProcessingPressed} rightIcon={ } variant="rounded" colorScheme="sapphireBlue" color="sapphireBlue.Plus1" /> )} {rightComponent ? ( rightComponent ) : ( } /> Isi Saldo )} ); }; export default BalanceCard;