From 5d7648c6b087598c4c7bd9b3a7d0eebf965da730 Mon Sep 17 00:00:00 2001 From: shafi54 <108669266+shafi-aviz@users.noreply.github.com> Date: Sun, 6 Sep 2026 19:27:52 +0530 Subject: [PATCH] enhh --- apps/admin-ui/src/components/ProductForm.tsx | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/apps/admin-ui/src/components/ProductForm.tsx b/apps/admin-ui/src/components/ProductForm.tsx index 842c775..9873886 100644 --- a/apps/admin-ui/src/components/ProductForm.tsx +++ b/apps/admin-ui/src/components/ProductForm.tsx @@ -212,15 +212,20 @@ const ProductForm = forwardRef(({ // 'quantity' feature must always go out lowercase (case-insensitive // matching means 'Quantity'/'QUANTITY' are treated the same), and // names are trimmed like the backend does. + // TextInputs emit strings — coerce price fields to the numeric types + // the backend zod schema requires (price required; market/flash nullable). + const toNumber = (value: unknown): number | null => { + if (value == null || value === '') return null + const n = Number(value) + return Number.isFinite(n) ? n : null + } const normalizedValues: ProductFormData = { ...values, variants: values.variants.map((v) => ({ ...v, - // TextInputs emit strings — coerce to the numeric types the - // backend zod schema requires (price required; market/flash nullable). - price: v.price == null || v.price === '' ? undefined : Number(v.price), - marketPrice: v.marketPrice == null || v.marketPrice === '' ? null : Number(v.marketPrice), - flashPrice: v.flashPrice == null || v.flashPrice === '' ? null : Number(v.flashPrice), + price: toNumber(v.price) ?? undefined, + marketPrice: toNumber(v.marketPrice), + flashPrice: toNumber(v.flashPrice), features: v.features.map((a) => ({ ...a, featureName: isQuantityFeature(a) ? 'quantity' : (a.featureName ?? '').trim() || null,