// @mui import { styled } from '@mui/material/styles'; import { Button, Card, Typography, LinearProgress, linearProgressClasses, Stack, } from '@mui/material'; // components import Iconify from '../../components/Iconify'; // React import { useState } from 'react'; // utils import { fCurrency, fSplit } from '../../utils/formatNumber'; /* -------------------------------- sections -------------------------------- */ import DialogTopUpLimit from './DialogTopUpLimit'; import DialogClaimSubmitMember from './DialogClaimSubmitMember'; /* ---------------------------------- types --------------------------------- */ type CardBalanceProps = { data: { myLimit: { balance: number; total: number; percentage: number; }; lockLimit: { balance: number; percentage: number; }; }; }; /* -------------------------------------------------------------------------- */ /* --------------------------------- styled --------------------------------- */ const RootBalanceStyle = styled(Card)(({ theme }) => ({ boxShadow: 'none', padding: theme.spacing(3), color: 'black', backgroundColor: theme.palette.grey[200], maxHeight: '240px', })); const BorderLinearProgress = styled(LinearProgress)(({ theme }) => ({ height: 10, borderRadius: 6, [`&.${linearProgressClasses.colorPrimary}`]: { backgroundColor: theme.palette.grey[theme.palette.mode === 'light' ? 300 : 800], }, [`& .${linearProgressClasses.bar}`]: { borderRadius: 6, backgroundColor: theme.palette.primary.main, }, })); /* -------------------------------------------------------------------------- */ export default function CardBalance(props: CardBalanceProps) { const [openDialog, setOpenDialog] = useState(false); const [dialogTitle, setDialogTitle] = useState(''); const [isDialog, setIsDialog] = useState(''); const { myLimit, lockLimit } = props.data; const clickHandler = (isDialog: string) => { switch (isDialog) { case 'submitClaim': setDialogTitle('Add Claim'); setIsDialog(isDialog); setOpenDialog(true); break; case 'topUpLimit': setDialogTitle('Top Up Limit'); setIsDialog(isDialog); setOpenDialog(true); break; default: break; } }; return ( <>
Total Limit {fCurrency(myLimit ? myLimit.balance : 0)} / {fSplit(myLimit ? myLimit.total : 0)}
{myLimit ? myLimit.percentage : 0}%
Lock Fund ( {lockLimit ? lockLimit.percentage : 0}% ) {fSplit(lockLimit ? lockLimit.balance : 0)} / {fSplit(myLimit ? myLimit.total : 0)} {isDialog === 'submitClaim' && ( )} {isDialog === 'topUpLimit' && ( )}
); }