diff --git a/app/register/form.js b/app/register/form.js new file mode 100644 index 0000000..214211a --- /dev/null +++ b/app/register/form.js @@ -0,0 +1,45 @@ +'use client' + +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 RegistrationForm() { + const router = useRouter() + const [error, setError] = useState('') + const [isOpen, setIsOpen] = useState(false) + + const handleFormSubmit = async data => { + const response = await fetch('/api/auth/register', { + method: 'POST', + body: JSON.stringify({ + ...data + }) + }) + + if (response.status === 201) { + router.push('/login') + router.refresh() + } else { + const errorResponse = await response.json() + setError(errorResponse.message) + setIsOpen(true) + } + } + + return ( + <> + {error && } + + + ) +} diff --git a/app/register/page.js b/app/register/page.js new file mode 100644 index 0000000..cf95091 --- /dev/null +++ b/app/register/page.js @@ -0,0 +1,13 @@ +import {getServerSession} from 'next-auth' +import {redirect} from 'next/navigation' +import RegistrationForm from './form.js' + +export default async function RegisterPage() { + const session = await getServerSession() + + if (session) { + redirect('/') + } + + return +}