"use client"; import { Queries } from "@/api/queries"; import { useState, FormEvent, useEffect } 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 [shouldRedirect, setShouldRedirect] = useState(false); const router = useRouter(); const setAuth = useLotteryAuth((state) => state.setAuth); // Phone validation function const validatePhone = (value: string) => { const phoneRegex = /^99363\d{6}$/; return phoneRegex.test(value); }; // Code validation function const validateCode = (value: string) => { const codeRegex = /^\d-\d{10}$/; return codeRegex.test(value); }; const handleSubmit = async (e: FormEvent) => { e.preventDefault(); setError(null); console.log("Form submitted"); if (!validatePhone(phone)) { setError("Telefon belgisi nädogry formatda"); return; } if (!validateCode(code)) { setError("Kod nädogry formatda"); return; } setIsLoading(true); try { console.log("Making API request..."); const response = await Queries.authenticateLottery(phone, code); console.log("API Response:", response); setAuth(response); console.log("Auth state set"); router.replace("/lottery"); } catch (err) { console.error("Authentication error:", err); setError("Telefon belgisi ýa-da kod nädogry"); } finally { setIsLoading(false); } }; useEffect(() => { if (shouldRedirect) { console.log("Redirect effect triggered"); router.push("/lottery"); } }, [shouldRedirect, router]); 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;