38 lines
847 B
TypeScript
38 lines
847 B
TypeScript
import { useEffect } from 'react'
|
|
import { signIn, useSession } from 'next-auth/react'
|
|
|
|
import Box from '../components/Box'
|
|
import Spinner from '../components/Spinner'
|
|
|
|
const SignInPage = () => {
|
|
const { data: session, status } = useSession()
|
|
|
|
useEffect(() => {
|
|
if (status !== 'loading' && !session) void signIn('github', { redirect: false })
|
|
if (status !== 'loading' && session) window.close()
|
|
}, [session, status])
|
|
|
|
return (
|
|
<Box
|
|
css={{
|
|
display: 'flex',
|
|
backgroundColor: '$mauve1',
|
|
position: 'absolute',
|
|
top: 0,
|
|
right: 0,
|
|
bottom: 0,
|
|
left: 0,
|
|
zIndex: 9999,
|
|
textAlign: 'center',
|
|
justifyContent: 'center',
|
|
alignItems: 'center',
|
|
gap: '$2'
|
|
}}
|
|
>
|
|
Logging in <Spinner />
|
|
</Box>
|
|
)
|
|
}
|
|
|
|
export default SignInPage
|