import React, { useState } from "react"; import CancelIcon from "@mui/icons-material/Cancel"; import CheckIcon from "@mui/icons-material/Check"; import CheckCircleIcon from "@mui/icons-material/CheckCircle"; import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown"; import KeyboardArrowUpIcon from "@mui/icons-material/KeyboardArrowUp"; import PriorityHighOutlinedIcon from "@mui/icons-material/PriorityHighOutlined"; import { Avatar, Collapse, IconButton, Stack, Table, TableBody } from "@mui/material"; import Chip from "@mui/material/Chip"; import TableRow from "@mui/material/TableRow"; import { DateTime } from "luxon"; import { TableCell } from "../../../components/Table/TableCell"; import TableHead from "../../../components/Table/TableHead"; import TableHeading from "../../../components/Table/TableHeading"; import { useI18n } from "../../../contexts/I18nContext"; import { formatPurchaseNumber } from "../../../util/format_purchase_number"; import { SubscriptionPeriod } from "../types/subscription"; export interface SubscriptionsListItemProps { period: SubscriptionPeriod; } export const SubscriptionsListItem: React.FC = ({ period }) => { const [open, setOpen] = useState(false); const { t } = useI18n(); return ( <> theme.palette.mode === "light" ? theme.palette.grey[200] : theme.palette.grey[700], }, }} onClick={() => setOpen(!open)} > {DateTime.fromISO(period.from_date as string).toISODate()} {DateTime.fromISO(period.due_date as string).toISODate()} {period.amount} {formatPurchaseNumber(period.purchase_number)} {period.date_confirmed != null ? ( } label={t("Paid")} size="small" sx={{ textTransform: "uppercase" }} /> ) : ( } label={t("Not paid")} size="small" sx={{ textTransform: "uppercase" }} /> )} setOpen(!open)}> {open ? : } (theme.palette.mode === "light" ? "grey.100" : "grey.800"), }} > {t("Date created")} {t("Payment method")} {t("Status")} {period.charges.map((charge) => ( {DateTime.fromISO(charge.date_created as string).toISODate()} {charge.payment_token?.method} {/* TODO Retry button, date_confirmed != null */} {charge.reason} {charge.reason === "" ? ( ) : ( )} ))}
); }; export default SubscriptionsListItem;