From 6709db493ce54e55dac2cae065684e389cb24f2c Mon Sep 17 00:00:00 2001 From: "nabijonovdavronbek619@gmail.com" Date: Mon, 17 Nov 2025 16:07:52 +0500 Subject: [PATCH] conatct validation --- components/contact.tsx | 42 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/components/contact.tsx b/components/contact.tsx index 98a4971..75ec36c 100644 --- a/components/contact.tsx +++ b/components/contact.tsx @@ -9,13 +9,36 @@ import { MessageSquare } from "lucide-react"; import { useLanguage } from "@/contexts/language-context"; import axios from "axios"; +function validateContact(input: string) { + const value = input.trim(); + + // Email regex (simple and reliable) + const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/; + + // Uzbek phone formats: + // - 9-digit numbers: 937665544 + // - +998XXXXXXXXX + const phoneRegex = /^(\+998\d{9}|\d{9})$/; + + if (emailRegex.test(value)) { + return { valid: true, type: "email" }; + } + + if (phoneRegex.test(value)) { + return { valid: true, type: "phone" }; + } + + return { valid: false, message: "Enter valid email or phone number" }; +} + export default function Contact() { const [formData, setFormData] = useState({ name: "", - email: "", + connect_link: "", message: "", }); const { t } = useLanguage(); + const [error, setError] = useState(""); const handleChange = ( e: React.ChangeEvent @@ -29,6 +52,11 @@ export default function Contact() { const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); // Handle form submission + const valid = validateContact(formData.connect_link); + if (!valid.valid) { + setError(valid.message || ""); + return; + } try { const token = "7940057045:AAHRFPvgUCo_7pqpXD6uq4li7-_DYx2J96g"; // Use environment variable const chatId = 6134458285; @@ -40,7 +68,7 @@ export default function Contact() { const message = ` 📥 Yangi xabar keldi! 👤 Ism: ${formData.name} - 📧 Email: ${formData.email} + 📧 Bog'lanish uchun: ${formData.connect_link} 💬 Xabar: ${formData.message} `; @@ -52,9 +80,10 @@ export default function Contact() { alert("✅ Tez orada bog'lanamiz!"); setFormData({ name: "", - email: "", + connect_link: "", message: "", }); + setError('') } catch (error) { console.error("Yuborishda xatolik:", error); alert("❌ Yuborishda xatolik yuz berdi!"); @@ -96,14 +125,15 @@ export default function Contact() { {t.contact.fields.email} + {error &&

{error}

}