style(forms): ujednolicenie ekranu sukcesu i usuniecie zbednych opcji

This commit is contained in:
MichalC
2026-07-27 22:32:30 +02:00
parent e338c95da0
commit 1a11aecf01
5 changed files with 78 additions and 72 deletions
+14 -14
View File
@@ -4,8 +4,9 @@ import { useCartStore } from '@/lib/cart-store';
import { useActionState, useEffect, startTransition } from 'react';
import Link from 'next/link';
import { submitOrderForm } from './actions';
import { ArrowLeft, CheckCircle } from 'lucide-react';
import { ArrowLeft, CheckCircle2 } from 'lucide-react';
import { buttonClasses } from '@/components/ui/Button';
import { getRecaptchaToken } from '@/lib/getRecaptchaToken';
const initialState = { success: false, message: '' };
@@ -34,14 +35,16 @@ Wróć do sklepu
if (state.success) {
return (
<main className="min-h-screen bg-slate-50 flex items-center justify-center">
<div className="text-center max-w-md px-4">
<CheckCircle className="size-16 text-green-500 mx-auto mb-4" />
<h2 className="text-2xl font-bold text-primary font-heading mb-2">Zamówienie przyjęte!</h2>
<p className="text-text-muted mb-6">{state.message}</p>
<Link href="/sklep" className={buttonClasses({ variant: 'primary', size: 'md' })}>
Wróć do sklepu
</Link>
<main className="min-h-screen bg-slate-50 flex items-center justify-center py-16">
<div className="max-w-md mx-auto px-4 w-full">
<div className="bg-green-50 text-green-800 p-8 rounded-2xl border border-green-200 flex flex-col items-center text-center">
<CheckCircle2 className="w-16 h-16 text-green-500 mb-4" />
<h3 className="text-2xl font-bold font-heading mb-2">Zamówienie przyjęte!</h3>
<p className="text-green-700">{state.message}</p>
<Link href="/sklep" className="mt-6 px-6 py-2 bg-green-600 text-white rounded-lg font-semibold hover:bg-green-700 transition-colors">
Wróć do sklepu
</Link>
</div>
</div>
</main>
);
@@ -78,11 +81,8 @@ Wróć do sklepu
<form onSubmit={async (e) => {
e.preventDefault();
const formData = new FormData(e.currentTarget);
if (process.env.NEXT_PUBLIC_RECAPTCHA_SITE_KEY) {
const token = await (window as any).grecaptcha.execute(
process.env.NEXT_PUBLIC_RECAPTCHA_SITE_KEY,
{ action: 'submit' }
);
const token = await getRecaptchaToken('submit');
if (token) {
formData.append('recaptchaToken', token);
}
startTransition(() => {