From 4fa2daf2128af81451ae6ae6a9918467217f3d4e Mon Sep 17 00:00:00 2001 From: DanielS Date: Fri, 10 Jul 2026 01:01:28 +0200 Subject: [PATCH] fix: auto-save current uncommitted wizard state to basket before editing another item --- shop/components/order-wizard.tsx | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/shop/components/order-wizard.tsx b/shop/components/order-wizard.tsx index cfe02bb..5d2f933 100644 --- a/shop/components/order-wizard.tsx +++ b/shop/components/order-wizard.tsx @@ -585,7 +585,23 @@ export function OrderWizard({ const editBasketItem = (idx: number) => { const item = basketItems[idx] if (!item) return - setBasketItems(prev => prev.filter((_, i) => i !== idx)) + + const hasProduct = Object.values(selections).some(sel => sel.productId || (sel.productIds && sel.productIds.length > 0)) + if (hasProduct) { + const currentItem = { + deviceName: deviceName || `Kasse ${basketItems.length + 1}`, + selections: JSON.parse(JSON.stringify(selections)), + moduleQuantities: { ...moduleQuantities }, + billingInterval: selectedBillingInterval, + } + setBasketItems(prev => { + const filtered = prev.filter((_, i) => i !== idx) + return [...filtered, currentItem] + }) + } else { + setBasketItems(prev => prev.filter((_, i) => i !== idx)) + } + setSelections(item.selections) setModuleQuantities(item.moduleQuantities) setDeviceName(item.deviceName)