"use client"; import { Queries } from "@/api/queries"; import { useState, FormEvent } from "react"; import { useRouter } from "next/navigation"; import { useLotteryAuth } from "@/store/useLotteryAuth"; const LotteryAuthForm = () => { const [phone, setPhone] = useState(""); const [code, setCode] = useState(""); const [error, setError] = useState(null); const [isLoading, setIsLoading] = useState(false); const router = useRouter(); const setAuth = useLotteryAuth((state) => state.setAuth); const validatePhone = (value: string) => { const phoneRegex = /^99363\d{6}$/; return phoneRegex.test(value); }; const validateCode = (value: string) => { const codeRegex = /^\d-\d{10}$/; return codeRegex.test(value); }; const handleSubmit = async (e: FormEvent) => { e.preventDefault(); setError(null); if (!validatePhone(phone)) { setError("Telefon belgisi nädogry formatda"); return; } if (!validateCode(code)) { setError("Kod nädogry formatda"); return; } setIsLoading(true); try { const response = await Queries.authenticateLottery(phone, code); setAuth(response, phone, code); router.replace("/lottery"); } catch (err) { console.error("Authentication error:", err); setError("Telefon belgisi ýa-da kod nädogry"); } finally { setIsLoading(false); } }; const handlePhoneChange = (e: React.ChangeEvent) => { const value = e.target.value.replace(/\D/g, ""); // Remove non-digits if (value.length <= 11) { // Limit to 11 digits (99363 + 6 digits) setPhone(value); } }; const handleCodeChange = (e: React.ChangeEvent) => { const value = e.target.value; if (value.length <= 12) { // Limit to 12 characters (X-XXXXXXXXXX) setCode(value); } }; return (

Lotereýa giriş

{error && (

{error}

)}
); }; export default LotteryAuthForm;