Add possibility to exclude margin in spool icon for overview sites

This commit is contained in:
Panagiotis Doulgeris
2024-12-22 15:38:05 +01:00
parent fd256bab95
commit 6b2dbda354
4 changed files with 13 additions and 5 deletions

View File

@@ -3,6 +3,7 @@
width: 1.5em;
height: 2.5em;
gap: 2px;
margin: 0 0.5em;
}
.spool-icon.vertical {
@@ -14,6 +15,10 @@
height: 4em;
}
.spool-icon.no-margin {
margin: 0;
}
.spool-icon * {
flex: 1 1 0px;
border-radius: 2px;

View File

@@ -3,13 +3,15 @@ import "./spoolIcon.css";
interface Props {
color: string | { colors: string[]; vertical: boolean };
size?: "small" | "large";
no_margin? : boolean
}
export default function SpoolIcon(props: Props) {
export default function SpoolIcon(props: Readonly<Props>) {
let dirClass = "vertical";
let cols = [];
let size = props.size ? props.size : "small";
let no_margin = props.no_margin ? "no-margin" : "";
if (typeof props.color === "string") {
cols = [props.color];
} else {
@@ -18,7 +20,7 @@ export default function SpoolIcon(props: Props) {
}
return (
<div className={"spool-icon " + dirClass + " " + size}>
<div className={"spool-icon " + dirClass + " " + size + " " + no_margin}>
{cols.map((col) => (
<div
key={col}

View File

@@ -88,7 +88,7 @@ export const FilamentShow: React.FC<IResourceComponentsProps> = () => {
<Title level={5}>{t("filament.fields.name")}</Title>
<TextField value={record?.name} />
<Title level={5}>{t("filament.fields.color_hex")}</Title>
{colorObj && <SpoolIcon color={colorObj} size="large" />}
{colorObj && <SpoolIcon color={colorObj} size="large" no_margin />}
{record?.color_hex && <TextField value={`#${record?.color_hex}`} />}
<Title level={5}>{t("filament.fields.material")}</Title>
<TextField value={record?.material} />

View File

@@ -146,7 +146,8 @@ export const SpoolShow: React.FC<IResourceComponentsProps> = () => {
<Title level={5}>{t("spool.fields.id")}</Title>
<NumberField value={record?.id ?? ""} />
<Title level={5}>{t("spool.fields.filament")}</Title>
{colorObj && <SpoolIcon color={colorObj} />} <TextField value={record ? filamentURL(record?.filament) : ""} />
{colorObj && <SpoolIcon color={colorObj} size="large" no_margin />}
<TextField value={record ? filamentURL(record?.filament) : ""} />
<Title level={5}>{t("spool.fields.price")}</Title>
<NumberField
value={record ? spoolPrice(record) : ""}