"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { LoaderIcon, Mail, MapPin, MessagesSquare, Phone } from "lucide-react"; import { useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { z } from "zod"; import { Button } from "@/components/ui/button"; import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"; import { Checkbox } from "@/components/ui/checkbox"; import { Field, FieldError, FieldGroup, FieldLabel, } from "@/components/ui/field"; import { Input } from "@/components/ui/input"; import { Separator } from "@/components/ui/separator"; import { Textarea } from "@/components/ui/textarea"; import { cn } from "@/lib/utils"; interface ContactInfo { icon: React.ReactNode; title: string; description: string; value: string; href: string; badge?: string; } const contactInfo: ContactInfo[] = [ { icon: , title: "ایمیل", description: "پاسخ فروش در روزهای کاری، معمولاً کمتر از ۲۴ ساعت", value: "hello@company.com", href: "mailto:hello@company.com", badge: "پیشنهادی", }, { icon: , title: "چت زنده", description: "پشتیبانی محصول برای سؤال‌های فوری درباره CRM.", value: "شروع گفتگو", href: "#", badge: "آنلاین", }, { icon: , title: "تلفن", description: "مشاوره فروش، دوشنبه تا جمعه ۹ تا ۱۸", value: "۲۱-۱۲۳۴۵۶۷۸", href: "tel:+982112345678", }, { icon: , title: "دفتر", description: "جلسه معرفی محصول را با هماهنگی قبلی برگزار کنید.", value: "تهران، خیابان ولیعصر", href: "#", }, ]; const contactFormSchema = z.object({ firstName: z.string().min(1, "نام را وارد کنید"), lastName: z.string().min(1, "نام خانوادگی را وارد کنید"), email: z .string() .min(1, "ایمیل را وارد کنید") .email("ایمیل واردشده معتبر نیست"), company: z.string().optional(), message: z.string().min(1, "پیام را وارد کنید"), // @ts-ignore agreeToTerms: z.literal(true, { errorMap: () => ({ message: "برای ادامه، شرایط استفاده را بپذیرید." }), }), }); type ContactFormData = z.infer; interface Contact6Props { className?: string; onSubmit?: (data: ContactFormData) => Promise; } const Contact6 = ({ className, onSubmit }: Contact6Props) => { const [isSubmitted, setIsSubmitted] = useState(false); const [showSuccess, setShowSuccess] = useState(false); const form = useForm({ resolver: zodResolver(contactFormSchema), mode: "onSubmit", reValidateMode: "onSubmit", defaultValues: { firstName: "", lastName: "", email: "", company: "", message: "", agreeToTerms: undefined, }, }); const handleFormSubmit = async (data: ContactFormData) => { try { if (onSubmit) { await onSubmit(data); } else { console.log("Form submitted:", data); await new Promise((resolve) => setTimeout(resolve, 1000)); } setIsSubmitted(true); setShowSuccess(true); form.reset(); setTimeout(() => setShowSuccess(false), 4500); setTimeout(() => setIsSubmitted(false), 5000); } catch { form.setError("root", { message: "ارسال درخواست ناموفق بود. دوباره تلاش کنید.", }); } }; return (

با تیم CRM در ارتباط باشید

برای دمو، پشتیبانی یا انتخاب پلن فروش از یکی از راه‌های زیر اقدام کنید. کارشناس مربوط در کوتاه‌ترین زمان پیگیری می‌کند.

{contactInfo.map((info, index) => (
{info.icon}

{info.title}

{info.description}

{info.value}
))}
درخواست خود را ارسال کنید

فرم را پر کنید تا کارشناس فروش در کوتاه‌ترین زمان پاسخ دهد.

{isSubmitted && (

پیام شما ثبت شد. به‌زودی پیگیری می‌کنیم.

)}
( نام{" "} * {fieldState.invalid && ( )} )} /> ( نام خانوادگی{" "} * {fieldState.invalid && ( )} )} />
( ایمیل{" "} * {fieldState.invalid && ( )} )} /> ( شرکت )} /> ( پیام *