import React, { useState } from "react"; import KeyboardArrowDownIcon from "@mui/icons-material/KeyboardArrowDown"; import KeyboardArrowUpIcon from "@mui/icons-material/KeyboardArrowUp"; import { Box, Chip, Collapse, Grid2 as Grid, IconButton, TableRow, Typography, } from "@mui/material"; import { DateTime } from "luxon"; import { TableCell } from "../../../components/Table/TableCell"; import { useI18n } from "../../../contexts/I18nContext"; import { currencyFormat } from "../../pos/utils/amountToCurrencyString"; import { WalletTransaction } from "../types/wallet"; export interface WalletTransactionListItemProps { transaction: WalletTransaction; } const formatAmount = (value: string | number, currency: string) => currencyFormat(Number(value), currency, "sv-SE", 2, "code"); const formatDate = (value: string) => DateTime.fromISO(value).toLocaleString(DateTime.DATETIME_MED); const statusColor = (status: WalletTransaction["status"]) => { switch (status) { case "SETTLED": return "success"; case "PENDING": return "info"; case "ABORTED": return "default"; } }; const WalletTransactionListItem: React.FC = ({ transaction }) => { const { t } = useI18n(); const [open, setOpen] = useState(false); return ( <> setOpen(!open)}> {DateTime.fromISO(transaction.date_created).toLocaleString(DateTime.DATETIME_SHORT)} {transaction.description} {transaction.account_number} {formatAmount(transaction.amount, transaction.currency)} { event.stopPropagation(); setOpen(!open); }} > {open ? : } {t("Transaction ID")} {transaction.id} {t("Reference")} {transaction.reference ?? "—"} {t("Action")} {t(transaction.action)} {t("Date created")} {formatDate(transaction.date_created)} {transaction.date_settled && ( {t("Date settled")} {formatDate(transaction.date_settled)} )} {transaction.date_aborted && ( {t("Date aborted")} {formatDate(transaction.date_aborted)} )} ); }; export default WalletTransactionListItem;