/* eslint-disable promise/prefer-await-to-then */ 'use client'; 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'; export default function Auth() { useTelegramTheme(); useAuth(); return null; } function useAuth() { const initDataUser = useSignal(initData.user); const { status } = useSession(); useEffect(() => { if (!initDataUser?.id) return; if (status === 'authenticated') { redirect('/profile'); } if (status === 'unauthenticated') { signIn('telegram', { callbackUrl: '/profile', redirect: false, telegramId: initDataUser.id, }).then(() => redirect('/profile')); } }, [initDataUser?.id, status]); } function useTelegramTheme() { const isDark = isMiniAppDark(); const { setTheme } = useTheme(); useEffect(() => { setTheme(isDark ? 'dark' : 'light'); }, [isDark, setTheme]); }