"use client"; import { useState } from "react"; import { AnimatedSection } from "@/shared/components/animated-section"; import { SectionHeading } from "@/shared/components/section-heading"; import { Send, Mail, User, MessageSquare, CheckCircle, Loader2, AlertCircle, MapPin, Clock, Sparkles, MessageCircle, } from "lucide-react"; import { useTranslations } from "next-intl"; import { sendMessageAction } from "./actions"; export function ContactSection() { const t = useTranslations("Contact"); const [formState, setFormState] = useState< "idle" | "loading" | "success" | "error" >("idle"); const [errorMessage, setErrorMessage] = useState(null); const [formData, setFormData] = useState({ name: "", email: "", message: "", }); const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setFormState("loading"); setErrorMessage(null); const fd = new FormData(e.currentTarget); const result = await sendMessageAction(null, fd); if (result.success) { setFormState("success"); setFormData({ name: "", email: "", message: "" }); setTimeout(() => setFormState("idle"), 4000); } else { setFormState("error"); setErrorMessage(result.message || "Terjadi kesalahan."); setTimeout(() => setFormState("idle"), 5000); } }; return (
{/* Left — Contact Info */}

{t("info.title")}

{t("info.subtitle")}

{t("info.email")}

yolandomanullang@gmail.com

{t("info.location")}

{t("info.locationValue")}

{t("info.responseTime")}

{t("info.responseTimeValue")}

{/* WhatsApp */}

WhatsApp {t("info.fastResponse", { fallback: "Fast Response" })}

+62 822-6785-2521
{/* Decorative card */}
{t("info.openToWork")}

{t("info.openToWorkDesc")}

{/* Right — Form */}
{/* Success overlay */} {formState === "success" && (

{t("form.successTitle")}

{t("form.successDesc")}

)} {/* Error notification */} {formState === "error" && errorMessage && (
{errorMessage}
)}

{t("form.heading")}

{t("form.subheading")}

{/* Name */}
setFormData((prev) => ({ ...prev, name: e.target.value, })) } placeholder={t("form.namePlaceholder")} className="w-full px-4 py-3 rounded-xl bg-background/50 border border-border hover:border-accent/40 text-sm placeholder:text-muted-foreground/40 focus:outline-none focus:ring-4 focus:ring-accent/10 focus:border-accent transition-all duration-300" />
{/* Email */}
setFormData((prev) => ({ ...prev, email: e.target.value, })) } placeholder={t("form.emailPlaceholder")} className="w-full px-4 py-3 rounded-xl bg-background/50 border border-border hover:border-accent/40 text-sm placeholder:text-muted-foreground/40 focus:outline-none focus:ring-4 focus:ring-accent/10 focus:border-accent transition-all duration-300" />
{/* Message */}