import { CardState } from '@sudoplatform/sudo-virtual-cards' import useAsyncFn, { AsyncState } from 'react-use/lib/useAsyncFn' import React, { useContext, useState } from 'react' import { VirtualCard } from '@sudoplatform/sudo-virtual-cards' import { AppContext } from '../../../containers/AppContext' import { Button } from '@sudoplatform/web-ui' import { UpdateCardModal } from './UpdateCardModal' import { List } from 'antd' import Cards, { Focused } from 'react-credit-cards' import 'react-credit-cards/es/styles-compiled.css' interface Props { listVirtualCardsResult: AsyncState onVirtualCardCancelled?: (id: string) => void onVirtualCardUpdated?: (id: string) => void } export const VirtualCardList: React.FC = (props) => { const { virtualCardsClient } = useContext(AppContext) const [cancelVirtualCardResult, cancelVirtualCard] = useAsyncFn( async (virtualCard: VirtualCard) => { console.log({ virtualCard }) const result = await virtualCardsClient.cancelVirtualCard({ id: virtualCard.id, }) props.onVirtualCardCancelled?.(result.result.id) return result }, ) const [chosenCard, setChosenCard] = useState( undefined, ) const [modalVisible, setModalVisible] = useState(false) const [cvcVisible, setCvcVisible] = useState('name' as Focused) const showUpdateModal = (virtualCard: VirtualCard) => { setChosenCard(virtualCard) setModalVisible(true) } const toggleCVCVisible = () => { setCvcVisible(cvcVisible != 'cvc' ? 'cvc' : 'name') } return ( <> { return ( <>
toggleCVCVisible()}>
{item.state === CardState.Issued ? ( <> ) : ( <>This card is {item.state}. )}
) }} >
props.onVirtualCardUpdated?.(id)} /> ) }