'use client'; import { useCartStore } from '@/lib/cart-store'; import { useActionState, useEffect } from 'react'; import Link from 'next/link'; import { submitOrderForm } from './actions'; import { ArrowLeft, CheckCircle } from 'lucide-react'; const initialState = { success: false, message: '' }; export default function ZamowieniePage() { const { items, getTotal, clearCart } = useCartStore(); const [state, formAction, pending] = useActionState(submitOrderForm, initialState); const total = getTotal(); useEffect(() => { if (state.success) clearCart(); }, [state.success]); if (items.length === 0 && !state.success) { return ( Koszyk jest pusty. Wróć do sklepu ); } if (state.success) { return ( Zamówienie przyjęte! {state.message} Wróć do sklepu ); } return ( Wróć do koszyka Złóż zamówienie {/* Podsumowanie produktów */} Zamawiane produkty {items.map((item) => ( {item.name} × {item.quantity} {(item.price * item.quantity).toLocaleString('pl-PL')} zł ))} Łącznie (urządzenia) {total.toLocaleString('pl-PL')} zł {/* Formularz */} Twoje dane {/* Hidden: produkty jako JSON */} Imię i nazwisko * Telefon * Email * Adres dostawy / montażu Uwagi do zamówienia Wyrażam zgodę na przetwarzanie danych osobowych w celu realizacji zamówienia zgodnie z Polityką Prywatności. * {state.message && !state.success && ( {state.message} )} {pending ? 'Wysyłanie...' : 'Wyślij zamówienie'} Po złożeniu zamówienia skontaktujemy się z Tobą telefonicznie w ciągu 24 godzin, aby potwierdzić szczegóły i ustalić termin montażu. ); }
Koszyk jest pusty.
{state.message}
Po złożeniu zamówienia skontaktujemy się z Tobą telefonicznie w ciągu 24 godzin, aby potwierdzić szczegóły i ustalić termin montażu.