From 99cbb11c5aad57ddc3574ab05e54f3f25f923717 Mon Sep 17 00:00:00 2001 From: DanielS Date: Fri, 10 Jul 2026 00:52:22 +0200 Subject: [PATCH] feat: add edit and delete actions to basket items for device configuration switching --- shop/components/order-wizard.tsx | 54 +++++++++++++++++++++++++++----- 1 file changed, 47 insertions(+), 7 deletions(-) diff --git a/shop/components/order-wizard.tsx b/shop/components/order-wizard.tsx index 4b7a45f..46590ba 100644 --- a/shop/components/order-wizard.tsx +++ b/shop/components/order-wizard.tsx @@ -11,7 +11,7 @@ import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' import { Separator } from '@/components/ui/separator' import { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group' -import { Check, ChevronRight, ChevronLeft, ShoppingCart, User, ShieldCheck, Cloud, Utensils, HardDrive, Package, AlertCircle, Loader2, UserPlus, Building2, CreditCard, Calendar, Search } from 'lucide-react' +import { Check, ChevronRight, ChevronLeft, ShoppingCart, User, ShieldCheck, Cloud, Utensils, HardDrive, Package, AlertCircle, Loader2, UserPlus, Building2, CreditCard, Calendar, Search, Pencil, Trash2 } from 'lucide-react' import { submitOrder, updateOrder } from '@/lib/actions/orders' import { createEndCustomer } from '@/lib/actions/end-customers' import { Category } from '@/lib/types' @@ -582,6 +582,20 @@ export function OrderWizard({ setSelections(resetSels) } + const editBasketItem = (idx: number) => { + const item = basketItems[idx] + if (!item) return + setBasketItems(prev => prev.filter((_, i) => i !== idx)) + setSelections(item.selections) + setModuleQuantities(item.moduleQuantities) + setDeviceName(item.deviceName) + setSelectedBillingInterval(item.billingInterval) + } + + const deleteBasketItem = (idx: number) => { + setBasketItems(prev => prev.filter((_, i) => i !== idx)) + } + const handleSubmit = async () => { if (isSubmitting) return setIsSubmitting(true) @@ -1371,12 +1385,38 @@ export function OrderWizard({ {basketItems.length > 0 && (

Warenkorb ({basketItems.length}):

- {basketItems.map((item, idx) => ( -
- {item.deviceName} - {item.billingInterval === 'one_time' ? 'Kauf' : 'Abo'} -
- ))} +
+ {basketItems.map((item, idx) => ( +
+
+ {item.deviceName} + {item.billingInterval === 'one_time' ? 'Kauf' : 'Abo'} +
+
+ + +
+
+ ))} +
)}