"use client"; import { auth_api } from "@/features/auth/lib/api"; import LoginForm from "@/features/auth/ui/login"; import { userInfoStore } from "@/shared/hooks/user-info"; import { getToken, removeToken, saveToken } from "@/shared/lib/cookie"; import { useMutation } from "@tanstack/react-query"; import { useEffect } from "react"; const TokenLayout = ({ children }: { children: React.ReactNode }) => { const { addedUser, loginUser, setLoginUser } = userInfoStore(); const token = getToken(); const { mutate: login, isPending } = useMutation({ mutationFn: (body: { telegram_id: string }) => auth_api.login(body), onSuccess: (res) => { const user = res.data.data; setLoginUser({ active: user.is_active, first_name: user.first_name, last_name: user.last_name, }); if (user.token) saveToken(user.token); }, onError: () => { removeToken(); setLoginUser(null); }, }); useEffect(() => { if (window.Telegram?.WebApp?.initDataUnsafe?.user) { const user = window.Telegram.WebApp.initDataUnsafe.user; console.log(user); addedUser({ first_name: user.first_name, last_name: user.last_name || "", user_id: String(user.id), active: false, }); login({ telegram_id: String(user.id) }); } }, [addedUser, login]); if (isPending && loginUser === null) { return (
); } if (loginUser && !loginUser.active) { return (

Foydalanuvchi aktivlashtirilmoqda...

Iltimos, bir necha soniya kuting

); } return <>{token ? children : }; }; export default TokenLayout;