import { useEffect, useState } from 'react'; import { Table, TableHead, TableBody, TableRow, TableCell, Button, } from '@material-ui/core'; import OpenInNew from '@material-ui/icons/OpenInNew'; import { formatDateWithLocale } from '../../common/util'; import PageContent from '../../common/PageContent'; import HeaderTitle from '../../common/HeaderTitle'; import ConditionallyRender from '../../common/ConditionallyRender'; import { formatApiPath } from '../../../utils/format-path'; import useInvoices from '../../../hooks/api/getters/useInvoices/useInvoices'; import { useLocation } from 'react-router-dom'; import { IInvoice } from '../../../interfaces/invoice'; const PORTAL_URL = formatApiPath('api/admin/invoices/portal'); const InvoiceList = () => { const { refetchInvoices, invoices } = useInvoices(); const [isLoaded, setLoaded] = useState(false); const location = useLocation(); useEffect(() => { refetchInvoices(); setLoaded(true); // eslint-disable-next-line react-hooks/exhaustive-deps }, []); return ( 0} show={ } > Billing portal } /> } >
Amount Status Due date PDF Link {invoices.map((item: IInvoice) => ( {item.amountFomratted} {item.status} {item.dueDate && formatDateWithLocale( item.dueDate, location.locale )} PDF Payment link ))}
} elseShow={
{isLoaded && 'No invoices to show.'}
} /> ); }; export default InvoiceList;