import {useBillingUser} from '../use-billing-user'; import {BillingPlanPanel} from '../billing-plan-panel'; import {Trans} from '../../../i18n/trans'; import {useInvoices} from '../requests/use-invoices'; import {FormattedDate} from '../../../i18n/formatted-date'; import {FormattedCurrency} from '../../../i18n/formatted-currency'; import {Chip} from '../../../ui/forms/input-field/chip-field/chip'; import {OpenInNewIcon} from '../../../icons/material/OpenInNew'; import {Skeleton} from '../../../ui/skeleton/skeleton'; import {AnimatePresence, m} from 'framer-motion'; import {Invoice} from '../../invoice'; import {opacityAnimation} from '../../../ui/animation/opacity-animation'; import {useSettings} from '../../../core/settings/use-settings'; export function InvoiceHistoryPanel() { const {user} = useBillingUser(); const query = useInvoices(user?.id!); if (!user) return null; const invoices = query.data?.invoices; return ( }>
{query.isLoading ? ( ) : ( )}
); } interface InvoiceListProps { invoices?: Invoice[]; } function InvoiceList({invoices}: InvoiceListProps) { const {base_url} = useSettings(); return ( {!invoices?.length ? (
) : undefined} {invoices?.map(invoice => (
{invoice.subscription.price && (
)} {invoice.paid ? ( ) : ( )}
{invoice.subscription.product?.name}
))}
); } function LoadingSkeleton() { return ( ); }