Create login page

This commit is contained in:
2024-05-20 04:14:46 +04:00
parent 851fd9c051
commit da7f86259a
2 changed files with 57 additions and 0 deletions
+44
View File
@@ -0,0 +1,44 @@
'use client'
import {signIn} from 'next-auth/react'
import {useRouter} from 'next/navigation'
import {useState} from 'react'
import AuthForm from '@/components/auth-form/index.js'
import AuthAlert from '@/components/auth-form/auth-alert.js'
export default function LoginForm() {
const router = useRouter()
const [error, setError] = useState('')
const [isOpen, setIsOpen] = useState(false)
const handleFormSubmit = async data => {
const response = await signIn('credentials', {
email: data.email,
password: data.password,
redirect: false
})
if (response?.error) {
setError(response.error)
setIsOpen(true)
} else {
router.push('/')
router.refresh()
}
}
return (
<>
{error && <AuthAlert isOpen={isOpen} setIsOpen={setIsOpen} message={error} severity='error' />}
<AuthForm
title='Connectez-vous à votre compte'
buttonText='Se connecter'
linkDescription='Vous navez pas de compte ?'
linkText='Sinscrire'
linkHref='/register'
isRegister={false}
onSubmit={handleFormSubmit}
/>
</>
)
}
+13
View File
@@ -0,0 +1,13 @@
import {getServerSession} from 'next-auth'
import {redirect} from 'next/navigation'
import LoginForm from './form.js'
export default async function LoginPage() {
const session = await getServerSession()
if (session) {
redirect('/')
}
return <LoginForm />
}