"use client"; import { useEffect, useState } from "react"; import { useLotteryAuth } from "@/store/useLotteryAuth"; import ProtectedRoute from "@/components/lottery/auth/ProtectedRoute"; import LotteryHeader from "@/components/lottery/LotteryHeader"; import LotteryWinnersSection from "@/components/lottery/LotteryWinnersSection"; import LotteryRulesSection from "@/components/lottery/rules/LotteryRulesSection"; import LotteryCountDown from "@/components/lottery/countDown/LotteryCountDown"; import { Queries } from "@/api/queries"; import Link from "next/link"; import { useRouter } from "next/navigation"; import Loader from "@/components/Loader"; const LotteryPage = () => { const { lotteryData, setAuth } = useLotteryAuth(); const [status, setStatus] = useState<"not-started" | "started" | "ended">( "not-started" ); const [isLoading, setIsLoading] = useState(true); const router = useRouter(); useEffect(() => { const checkAuth = async () => { // ✅ Check credentials from localStorage const phone = localStorage.getItem("lotteryPhone"); const code = localStorage.getItem("lotteryCode"); if (phone && code) { try { // ✅ Authenticate using stored credentials const response = await Queries.authenticateLottery(phone, code); if (response.errorMessage) { // If authentication fails, redirect to the auth page router.replace("/lottery/auth"); } else { // ✅ Set the authenticated state setAuth(response, phone, code); setIsLoading(false); } } catch (err) { console.error("Authentication failed:", err); router.replace("/lottery/auth"); } } else { // Redirect to the auth page if no credentials are found router.replace("/lottery/auth"); } }; checkAuth(); }, [router, setAuth]); if (isLoading) {
; } return (
{lotteryData && (
{status === "not-started" ? (
) : null}
)}
{lotteryData && (status === "ended" || status === "started") && ( )}
Çykmak
); }; export default LotteryPage;