diff --git a/apps/web/app/(auth)/telegram/page.tsx b/apps/web/app/(auth)/telegram/page.tsx index 3b60042..aed1db0 100644 --- a/apps/web/app/(auth)/telegram/page.tsx +++ b/apps/web/app/(auth)/telegram/page.tsx @@ -5,18 +5,33 @@ import { initData, isMiniAppDark, useSignal } from '@telegram-apps/sdk-react'; import { signIn, useSession } from 'next-auth/react'; import { useTheme } from 'next-themes'; import { redirect } from 'next/navigation'; -import { useEffect } from 'react'; +import { useEffect, useState } from 'react'; export default function Auth() { const initDataUser = useSignal(initData.user); const isDark = isMiniAppDark(); const { status } = useSession(); const { setTheme } = useTheme(); + const [isUpdating, setIsUpdating] = useState(true); useEffect(() => { setTheme(isDark ? 'dark' : 'light'); - if (initDataUser?.photoUrl) updateProfile({ photoUrl: initDataUser?.photoUrl }); + const update = async () => { + if (initDataUser?.photoUrl) { + await updateProfile({ photoUrl: initDataUser.photoUrl }); + } + + await updateProfile({ active: true }); + + setIsUpdating(false); + }; + + update(); + }, [initDataUser?.photoUrl, isDark, setTheme]); + + useEffect(() => { + if (isUpdating) return; if (status === 'authenticated') { redirect('/profile'); @@ -29,7 +44,7 @@ export default function Auth() { telegramId: String(initDataUser.id), }); } - }, [initDataUser, isDark, setTheme, status]); + }, [initDataUser?.id, isUpdating, status]); return ; }