This commit is contained in:
MichalC
2026-08-25 23:51:18 +02:00
parent 1eaf90ebbf
commit e98a903e28
19 changed files with 381 additions and 260 deletions
+15 -12
View File
@@ -4,9 +4,10 @@ import React, { useState } from 'react';
import { useForm } from 'react-hook-form';
import { zodResolver } from '@hookform/resolvers/zod';
import { z } from 'zod';
import { Loader2, CheckCircle2, AlertCircle, Check } from 'lucide-react';
import { Loader2, CheckCircle2, AlertCircle, Check, Send } from 'lucide-react';
import { submitContactForm } from '@/app/kontakt/actions';
import { getRecaptchaToken } from '@/lib/getRecaptchaToken';
import { Button } from "@/components/ui/Button";
const contactFormSchema = z.object({
name: z.string().min(2, "Imię musi mieć min. 2 znaki"),
@@ -88,12 +89,13 @@ export function ContactForm() {
<CheckCircle2 className="w-16 h-16 text-green-500 mb-4" />
<h3 className="text-2xl font-bold font-heading mb-2">Wiadomość wysłana!</h3>
<p className="text-green-700">{serverState.message}</p>
<button
<Button
variant="primary"
onClick={() => setServerState(null)}
className="mt-6 px-6 py-2 bg-green-600 text-white rounded-lg font-semibold hover:bg-green-700 transition-colors"
className="mt-6"
>
Wyślij kolejną wiadomość
</button>
</Button>
</div>
);
}
@@ -282,20 +284,21 @@ export function ContactForm() {
</div>
</div>
<button
<Button
type="submit"
disabled={isSubmitting}
className="btn btn-primary w-full text-white font-bold py-4 h-auto rounded-xl flex items-center justify-center gap-2 shadow-md"
variant="primary"
size="lg"
className="w-full"
>
{isSubmitting ? (
<>
<Loader2 className="w-5 h-5 animate-spin" />
<span>Wysyłanie...</span>
</>
"Wysyłanie..."
) : (
<span>Wyślij zapytanie</span>
<>
Wyślij zapytanie <Send className="size-4" />
</>
)}
</button>
</Button>
</form>
);
}