Vlad Chikalkin b936a79c2b
feature/profile-page (#8)
* add basic profile page

* apps/web: detect telegram/browser
support browser (dev only)

* apps/web: add dark mode

* apps/web: support dark theme in tma

* apps/web: add loading spinner
remove dev info from page

* apps\web\app\(auth)\page.tsx: remove useState

* app/web: handle update profile name

* move debounce functional to hook

* add role checkbox
2025-01-10 11:51:14 +03:00

32 lines
870 B
TypeScript

/* eslint-disable promise/prefer-await-to-then */
'use client';
import { getTelegramUser } from '@/mocks/get-telegram-user';
import { LoadingSpinner } from '@repo/ui/components/ui/spinner';
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() {
const { status } = useSession();
useTheme();
useEffect(() => {
if (status === 'authenticated') {
redirect('/profile');
}
if (status === 'unauthenticated' && process.env.NODE_ENV === 'development') {
getTelegramUser().then((user) => {
signIn('telegram', {
callbackUrl: '/profile',
redirect: false,
telegramId: String(user?.id),
});
});
}
}, [status]);
return <LoadingSpinner />;
}