From 95fcd51b176c3a9e9c31b7c78577dc7fbf8062f7 Mon Sep 17 00:00:00 2001 From: Theis Gaedigk Date: Wed, 27 May 2026 18:15:07 +0200 Subject: [PATCH] enhanced design --- frontend/src/pages/Inventory.tsx | 2 +- frontend/src/pages/ViewProduct.tsx | 291 ++++++++++++++++++++--------- 2 files changed, 201 insertions(+), 92 deletions(-) diff --git a/frontend/src/pages/Inventory.tsx b/frontend/src/pages/Inventory.tsx index 2d617af..6930358 100644 --- a/frontend/src/pages/Inventory.tsx +++ b/frontend/src/pages/Inventory.tsx @@ -361,7 +361,7 @@ export const InventoryPage = () => { diff --git a/frontend/src/pages/ViewProduct.tsx b/frontend/src/pages/ViewProduct.tsx index 4821430..6313703 100644 --- a/frontend/src/pages/ViewProduct.tsx +++ b/frontend/src/pages/ViewProduct.tsx @@ -7,6 +7,9 @@ import { Option, Input, Button, + Chip, + Divider, + Box, } from "@mui/joy"; import { useTranslation } from "react-i18next"; import { useEffect } from "react"; @@ -93,105 +96,211 @@ export const ViewProduct = (props: ViewProductProps) => { return ( <> - {t("product-details")} - {productDetailsLoading && } +
+
+
+ + {t("product-details")} + + + {t("inventory-header")} + +
+ + {t("details")} + +
+ {productDetailsLoading && } +
{isSuccess && ( - <> +
{ e.preventDefault(); form.handleSubmit(); }} > - - {(field) => ( - field.handleChange(e.target.value)} - onBlur={field.handleBlur} - /> - )} - - - {(field) => ( - field.handleChange(e.target.value)} - onBlur={field.handleBlur} - /> - )} - - {t("expiry-date")} - - {(field) => ( - field.handleChange(e.target.value)} - onBlur={field.handleBlur} - /> - )} - - {t("bottling-date")} - - {(field) => ( - field.handleChange(e.target.value)} - onBlur={field.handleBlur} - /> - )} - - - {(field) => ( - { - const nextValue = Number(e.target.value); - field.handleChange(Number.isNaN(nextValue) ? 0 : nextValue); - }} - onBlur={field.handleBlur} - /> - )} - - - {(field) => ( - field.handleChange(e.target.value)} - onBlur={field.handleBlur} - /> - )} - - {t("currency")} - - {(field) => ( - - )} - - +
+
+
+ + {t("product-name")} + + + {(field) => ( + field.handleChange(e.target.value)} + onBlur={field.handleBlur} + size="lg" + variant="outlined" + className="rounded-2xl bg-white/90 shadow-[0_10px_24px_rgba(15,23,42,0.08)]" + /> + )} + +
+
+ + {t("description")} + + + {(field) => ( + field.handleChange(e.target.value)} + onBlur={field.handleBlur} + size="lg" + variant="outlined" + className="rounded-2xl bg-white/90 shadow-[0_10px_24px_rgba(15,23,42,0.08)]" + /> + )} + +
+
+
+ + {t("expiry-date")} + + + {(field) => ( + field.handleChange(e.target.value)} + onBlur={field.handleBlur} + size="lg" + variant="outlined" + className="rounded-2xl bg-white/90" + /> + )} + +
+
+ + {t("bottling-date")} + + + {(field) => ( + field.handleChange(e.target.value)} + onBlur={field.handleBlur} + size="lg" + variant="outlined" + className="rounded-2xl bg-white/90" + /> + )} + +
+
+
+
+
+ + {t("inventory")} + + +
+
+ + {t("amount")} + + + {(field) => ( + { + const nextValue = Number(e.target.value); + field.handleChange( + Number.isNaN(nextValue) ? 0 : nextValue, + ); + }} + onBlur={field.handleBlur} + className="rounded-2xl bg-white/80" + /> + )} + +
+
+ + {t("price")} + + + {(field) => ( + field.handleChange(e.target.value)} + onBlur={field.handleBlur} + size="lg" + variant="outlined" + className="rounded-2xl bg-white/90" + /> + )} + + + {t("currency")} + +
+
+ + {t("storage-place")} + + + {(field) => ( + + )} + +
+
+
+
+
+
+ + {t("product-details")} + + +
- +
)} );