"use client"; import { useState } from "react"; import { submitContactForm } from "@/lib/api"; import { useToast } from "./providers/ToastProvider"; import { CheckIcon } from "./icons"; type Status = "idle" | "submitting" | "sent" | "error"; // Posts straight to POST /tenants/moalem.shop/contact-submissions — a real, // documented endpoint, no bearer required. On success: a toast, inline // success text, and the form resets and stays put (not swapped for a // separate "thank you" panel) so another message can be sent right away. export default function ContactForm() { const [status, setStatus] = useState("idle"); const { showToast } = useToast(); async function handleSubmit(e: React.FormEvent) { e.preventDefault(); const form = e.currentTarget; const data = new FormData(form); const name = String(data.get("name") || "").trim(); const title = String(data.get("title") || "").trim(); const text = String(data.get("text") || "").trim(); const email = String(data.get("email") || "").trim(); const cellNumber = String(data.get("cellNumber") || "").trim(); if (!name || !title || !text) return; setStatus("submitting"); try { await submitContactForm({ name, title, text, email: email || undefined, cellNumber: cellNumber || undefined, }); form.reset(); setStatus("sent"); showToast("پیام شما با موفقیت ارسال شد"); } catch { setStatus("error"); } } const input = "h-12 w-full rounded-xl border border-line bg-white px-4 text-sm outline-none transition focus:border-brand"; return (
status === "sent" && setStatus("idle")} className="space-y-4">