From 77a295d4230d8411af324d93a608d959abfaa5c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Luc=C3=A0s?= Date: Wed, 22 Mar 2023 16:59:22 +0100 Subject: [PATCH] Fix Register & auto connect when register Took 12 minutes --- src/components/form/LoginForm.tsx | 4 ++-- src/components/form/RegisterForm.tsx | 16 ++++++++++++++-- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/components/form/LoginForm.tsx b/src/components/form/LoginForm.tsx index 9fdc673..f51f8e0 100644 --- a/src/components/form/LoginForm.tsx +++ b/src/components/form/LoginForm.tsx @@ -28,9 +28,9 @@ export default function LoginForm() { const handleSubmit = async () => { await signIn('credentials', {...loginData, redirect: false}).then((res) => { - const {ok} = res as SignInResponse; + const {ok: connexionSuccess} = res as SignInResponse; - if (!ok) setInvalidInput(true); + if (!connexionSuccess) setInvalidInput(true); else router.push('/'); }); }; diff --git a/src/components/form/RegisterForm.tsx b/src/components/form/RegisterForm.tsx index fdad3bf..8900005 100644 --- a/src/components/form/RegisterForm.tsx +++ b/src/components/form/RegisterForm.tsx @@ -10,6 +10,7 @@ import { import {useRouter} from 'next/router'; import {useState} from 'react'; import {RegisterData} from '@/models/form/RegisterData'; +import {signIn, SignInResponse} from 'next-auth/react'; export default function RegisterForm() { const router = useRouter(); @@ -27,11 +28,22 @@ export default function RegisterForm() { const {password, confirmPassword} = registerData; if (password !== confirmPassword) setInvalidInput(true); - fetch('/api/user/new', { + fetch('/api/user', { method: 'PUT', headers: {'Content-Type': 'application/json'}, body: JSON.stringify(registerData), - }).then(() => router.push('/')).catch(() => { + }).then(() => { + const {email, password} = registerData; + + signIn('credentials', + {email, password, redirect: false}).then((res) => { + const {ok: connexionSuccess} = res as SignInResponse; + + // TODO If success -> goto interactive form else login + router.push( connexionSuccess ? "/" : "/login"); + }); + + }).catch(() => { setInvalidInput(true); setRegisterData({...registerData, password: '', confirmPassword: ''}); });