import React, { useMemo } from 'react'; import { useTheme } from 'styled-components'; import { getCoinLogo, logos } from '../../../modules/logos'; import { getStatusColor, SwapStatus } from '../../../modules/swap-statuses'; import cross from './cross.svg'; import { Svg } from './styled'; export const Graphic = ({ status, currencyIn, currencyOut, className, }: { status: SwapStatus; currencyIn: string; currencyOut: string; className?: string; }) => { const logoFrom = useMemo(() => getCoinLogo({ symbol: currencyIn }), [currencyIn]); const logoTo = useMemo(() => getCoinLogo({ symbol: currencyOut }), [currencyOut]); const theme = useTheme(); const pendingColor = theme.pulsar.color.border.normal; const progress = (() => { switch (status) { case 'WAITING': return 0; case 'PENDING': case 'SIGNING': case 'SIGNING_REFUND': return 1; case 'SENDING': case 'SENDING_REFUND': return 2; case 'COMPLETED': case 'REFUNDED': return 3; case 'EXPIRED': return 100; } })(); const completedColor = useMemo(() => { switch (status) { case 'PENDING': case 'WAITING': return getStatusColor({ theme, status: 'SENDING' }); default: return getStatusColor({ theme, status }); } }, [theme, status]); return ( = 0 ? completedColor : pendingColor} strokeWidth="2" /> {status !== 'EXPIRED' && ( <> = 1 ? completedColor : pendingColor} /> = 0 ? completedColor : pendingColor} /> )} {status === 'EXPIRED' && ( <> )} = 1 ? completedColor : pendingColor} strokeWidth="2" /> = 3 ? completedColor : pendingColor} /> = 2 ? completedColor : pendingColor} /> = 3 ? completedColor : pendingColor} strokeWidth="2" /> ); };