import { DateField, NumberField, Show, TextField } from "@refinedev/antd"; import { IResourceComponentsProps, useShow, useTranslate } from "@refinedev/core"; import { Button, Typography } from "antd"; import dayjs from "dayjs"; import utc from "dayjs/plugin/utc"; import React from "react"; import { useNavigate } from "react-router"; import { ExtraFieldDisplay } from "../../components/extraFields"; import { NumberFieldUnit } from "../../components/numberField"; import SpoolIcon from "../../components/spoolIcon"; import { enrichText } from "../../utils/parsing"; import { EntityType, useGetFields } from "../../utils/queryFields"; import { useCurrencyFormatter } from "../../utils/settings"; import { IFilament } from "./model"; dayjs.extend(utc); const { Title } = Typography; export const FilamentShow: React.FC = () => { const t = useTranslate(); const navigate = useNavigate(); const extraFields = useGetFields(EntityType.filament); const currencyFormatter = useCurrencyFormatter(); const { queryResult } = useShow({ liveMode: "auto", }); const { data, isLoading } = queryResult; const record = data?.data; const formatTitle = (item: IFilament) => { let vendorPrefix = ""; if (item.vendor) { vendorPrefix = `${item.vendor.name} - `; } return t("filament.titles.show_title", { id: item.id, name: vendorPrefix + item.name, interpolation: { escapeValue: false }, }); }; const gotoVendor = (): undefined => { const URL = `/vendor/show/${record?.vendor?.id}`; navigate(URL); }; const gotoSpools = (): undefined => { const URL = `/spool#filters=[{"field":"filament.id","operator":"in","value":[${record?.id}]}]`; navigate(URL); }; const colorObj = record?.multi_color_hexes ? { colors: record.multi_color_hexes.split(","), vertical: record.multi_color_direction === "longitudinal", } : record?.color_hex; return ( ( <> {defaultButtons} )} > {t("filament.fields.id")} {t("filament.fields.vendor")} {t("filament.fields.registered")} {t("filament.fields.name")} {t("filament.fields.color_hex")} {colorObj && } {record?.color_hex && } {t("filament.fields.material")} {t("filament.fields.price")} {t("filament.fields.density")} {t("filament.fields.diameter")} {t("filament.fields.weight")} {t("filament.fields.spool_weight")} {t("filament.fields.settings_extruder_temp")} {!record?.settings_extruder_temp ? ( ) : ( )} {t("filament.fields.settings_bed_temp")} {!record?.settings_bed_temp ? ( ) : ( )} {t("filament.fields.article_number")} {t("filament.fields.external_id")} {t("filament.fields.comment")} {t("settings.extra_fields.tab")} {extraFields?.data?.map((field, index) => ( ))} ); }; export default FilamentShow;