"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { Check, LoaderIcon } from "lucide-react"; import { useState } from "react"; import { Controller, useForm } from "react-hook-form"; import { z } from "zod"; import { Avatar, AvatarFallback, AvatarImage } from "@/components/ui/avatar"; import { Button } from "@/components/ui/button"; import { Field, FieldError, FieldGroup, FieldLabel, } from "@/components/ui/field"; import { Input } from "@/components/ui/input"; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@/components/ui/select"; import { cn } from "@/lib/utils"; const contactFormSchema = z.object({ fullName: z.string().min(1, "نام و نام خانوادگی"), company: z.string().optional(), phone: z.string().min(1, "شماره تماس کاری"), email: z .string() .min(1, "ایمیل کاری") .email("ایمیل واردشده معتبر نیست"), country: z.string().optional(), companySize: z.string().optional(), referral: z.string().optional(), }); type ContactFormData = z.infer; interface Contact1Props { className?: string; onSubmit?: (data: ContactFormData) => Promise; } const Contact1 = ({ className, onSubmit }: Contact1Props) => { const [isSubmitted, setIsSubmitted] = useState(false); const [showSuccess, setShowSuccess] = useState(false); const form = useForm({ resolver: zodResolver(contactFormSchema), mode: "onSubmit", reValidateMode: "onSubmit", defaultValues: { fullName: "", company: "", phone: "", email: "", country: "", companySize: "", referral: "", }, }); 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 (

دموی شخصی‌سازی‌شده سامانه مدیریت ارتباط با مشتری

در یک جلسه کوتاه، قیف فروش، اتوماسیون پیگیری و داشبورد تیم را روی سناریوی کسب‌وکارتان می‌بینید. کارشناسان فروش به پرسش‌های فنی و تجاری‌تان پاسخ می‌دهند.
SB RA JS

در این دمو چه می‌بینید؟

نگاشت قیف فروش و مراحل پیگیری سرنخ

پیشنهاد استقرار سامانه مدیریت ارتباط با مشتری متناسب با اندازه تیم

پاسخ به پرسش‌های یکپارچه‌سازی و گزارش‌گیری

لوگوی Astro لوگوی shadcn/ui
{isSubmitted && (

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

)} ( نام و نام خانوادگی{" "} * {fieldState.invalid && ( )} )} /> ( شرکت )} /> ( تلفن همراه{" "} * {fieldState.invalid && ( )} )} /> ( ایمیل کاری{" "} * {fieldState.invalid && ( )} )} /> ( کشور )} /> ( اندازه تیم فروش )} /> ( از کجا با پلتفرم آشنا شدید؟ )} /> {form.formState.errors.root && (

{form.formState.errors.root.message}

)}
با ارسال این فرم، نحوه پردازش داده‌های تماس در{" "} سیاست حریم خصوصی {" "} را می‌پذیرید.
); }; export { Contact1 };