"use client"; import { useState } from "react"; import { motion } from "framer-motion"; import { useTranslations } from "next-intl"; import { usePathname } from "next/navigation"; import { sendContactMessage } from "@/lib/api"; import { Phone, MessageSquare, MapPin } from "lucide-react"; import Image from "next/image"; export function ContactForm() { const t = useTranslations(); const pathname = usePathname(); const locale = (pathname.split("/")[1] || "uz") as "uz" | "ru"; const [formData, setFormData] = useState({ name: "", phone: "", message: "", productSlug: "", }); const [loading, setLoading] = useState(false); const [message, setMessage] = useState<{ type: "success" | "error"; text: string; } | null>(null); const handleChange = ( e: React.ChangeEvent< HTMLInputElement | HTMLTextAreaElement | HTMLSelectElement > ) => { setFormData((prev) => ({ ...prev, [e.target.name]: e.target.value, })); }; const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); setLoading(true); setMessage(null); try { const result = await sendContactMessage({ ...formData, lang: locale, }); if (result.success) { setMessage({ type: "success", text: t("contact.success") }); setFormData({ name: "", phone: "", message: "", productSlug: "" }); } else { setMessage({ type: "error", text: t("contact.error") }); } } catch { setMessage({ type: "error", text: t("contact.error") }); } finally { setLoading(false); } }; return (
hero image
{/* Header */}

{t("contact.title")}

{/* Contact Info */}

Get In Touch

Reach out to us for inquiries, support, or partnership opportunities.

{/* Contact Methods */} {[ { icon: Phone, title: "Phone", value: "+998 (99) 123-45-67", }, { icon: MessageSquare, title: "Telegram", value: "@firma_support", }, { icon: MapPin, title: "Address", value: "Tashkent, Uzbekistan", }, ].map((item, idx) => { const Icon = item.icon; return (

{item.title}

{item.value}

); })}
{/* Form */} {/* Name */}
{/* Phone */}
{/* Message */}