- add CurrencyField renderer (inherits NumberField for editing) with cached Intl formatter; route via uiType "currency" in list/detail/form - add resourceConfig.fieldTypes override applied in AppProvider, so amount becomes currency for both Admin and the Expenses page - render Expenses page through react-openapi fields (ListCellRenderer, DetailFieldRenderer, applyDisplayFormat) instead of custom fields - resolve relative /uploads entity logos against the API base URL on load so entity logos render on the expenses feed - drop custom avatar, currency/date formatters from the Expense module
25 lines
1.0 KiB
TypeScript
25 lines
1.0 KiB
TypeScript
import React from "react";
|
|
import { Box, Divider } from "@mui/material";
|
|
import { DetailFieldRenderer } from "../../react-openapi";
|
|
import type { ExpenseItem, ExpenseFieldConfigs } from "./types";
|
|
|
|
interface ExpenseDetailProps {
|
|
item: ExpenseItem;
|
|
fields: ExpenseFieldConfigs;
|
|
}
|
|
|
|
export function ExpenseDetail({ item, fields }: ExpenseDetailProps) {
|
|
return (
|
|
<Box sx={{ pt: 1, pb: 0.5 }}>
|
|
<Divider sx={{ mb: 1.5 }} />
|
|
<Box sx={{ display: "flex", flexDirection: "column", gap: 0.5 }}>
|
|
<DetailFieldRenderer field={fields.entity} value={item.entity} displayFormat={fields.formats.entity} />
|
|
<DetailFieldRenderer field={fields.amount} value={item.amount} />
|
|
<DetailFieldRenderer field={fields.account} value={item.account} displayFormat={fields.formats.account} />
|
|
<DetailFieldRenderer field={fields.tags} value={item.tags} displayFormat={fields.formats.tags} />
|
|
<DetailFieldRenderer field={fields.occurredAt} value={item.occurred_at} />
|
|
</Box>
|
|
</Box>
|
|
);
|
|
}
|