From c82110f7d3a2f85de99045fde7b579e369f15b2c Mon Sep 17 00:00:00 2001 From: Rafi Zadanly Date: Sat, 28 Oct 2023 09:05:00 +0700 Subject: Update authentication feature --- src/lib/auth/hooks/useLogin.js | 101 +++++++++++++++++++++-------------------- src/pages/login.jsx | 17 ++++--- src/pages/register.jsx | 6 --- 3 files changed, 62 insertions(+), 62 deletions(-) (limited to 'src') diff --git a/src/lib/auth/hooks/useLogin.js b/src/lib/auth/hooks/useLogin.js index 17731a86..dc9580ea 100644 --- a/src/lib/auth/hooks/useLogin.js +++ b/src/lib/auth/hooks/useLogin.js @@ -1,80 +1,83 @@ -import Link from '@/core/components/elements/Link/Link' -import { setAuth } from '@/core/utils/auth' -import { useRouter } from 'next/router' -import { useRef, useState } from 'react' -import loginApi from '../api/loginApi' -import odooApi from '@/core/api/odooApi' -import { setCookie } from 'cookies-next' -import { useSession } from 'next-auth/react' +import Link from '@/core/components/elements/Link/Link'; +import { setAuth } from '@/core/utils/auth'; +import { useRouter } from 'next/router'; +import { useRef, useState } from 'react'; +import loginApi from '../api/loginApi'; +import odooApi from '@/core/api/odooApi'; +import { setCookie } from 'cookies-next'; +import { useSession } from 'next-auth/react'; const useLogin = () => { - const router = useRouter() - const [isLoading, setIsLoading] = useState(false) - const [alert, setAlert] = useState(null) - const [isValid, setIsValid] = useState(false) + const router = useRouter(); + const [isLoading, setIsLoading] = useState(false); + const [alert, setAlert] = useState(null); + const [isValid, setIsValid] = useState(false); - const emailRef = useRef(null) - const passwordRef = useRef(null) + const emailRef = useRef(null); + const passwordRef = useRef(null); const inputVal = () => ({ email: emailRef.current.value, - password: passwordRef.current.value - }) + password: passwordRef.current.value, + }); const handleChangeInput = () => { - const { email, password } = inputVal() - const isValidInput = email && password - setIsValid(isValidInput) - } + const { email, password } = inputVal(); + const isValidInput = email && password; + setIsValid(isValidInput); + }; const handleSubmit = async (e) => { - e.preventDefault() - setAlert(null) - setIsLoading(true) - const { email, password } = inputVal() - const login = await loginApi({ email, password }) - setIsLoading(false) + e.preventDefault(); + setAlert(null); + setIsLoading(true); + const { email, password } = inputVal(); + const login = await loginApi({ email, password }); + setIsLoading(false); if (login.isAuth) { - setAuth(login.user) - router.push(router.query?.next || '/') - return + setAuth(login.user); + router.push(router.query?.next || '/'); + return; } switch (login.reason) { case 'NOT_FOUND': setAlert({ children: 'Email atau password tidak cocok', - type: 'info' - }) - break + type: 'info', + }); + break; case 'NOT_ACTIVE': setAlert({ children: ( <> Email belum diaktivasi, - + aktivasi sekarang ), - type: 'info' - }) - break + type: 'info', + }); + break; } - } + }; const handleGoogleSubmit = async (session) => { const params = { - access_token: session.accessToken - } - const data = await odooApi('POST', '/api/v1/user/validate-sso', params) + access_token: session.accessToken, + }; + const data = await odooApi('POST', '/api/v1/user/validate-sso', params); if (data.isAuth) { - session.odooUser = data.user - setCookie('auth', JSON.stringify(session?.odooUser)) - router.push(decodeURIComponent(router?.query?.next) ?? '/') - return + session.odooUser = data.user; + setCookie('auth', JSON.stringify(session?.odooUser)); + router.push(decodeURIComponent(router?.query?.next) ?? '/'); + return; } - } + }; return { handleChangeInput, @@ -84,8 +87,8 @@ const useLogin = () => { alert, emailRef, passwordRef, - handleGoogleSubmit - } -} + handleGoogleSubmit, + }; +}; -export default useLogin +export default useLogin; diff --git a/src/pages/login.jsx b/src/pages/login.jsx index 38174f84..9a1aa85b 100644 --- a/src/pages/login.jsx +++ b/src/pages/login.jsx @@ -1,9 +1,10 @@ -import Seo from '@/core/components/Seo' -import SimpleFooter from '@/core/components/elements/Footer/SimpleFooter' -import BasicLayout from '@/core/components/layouts/BasicLayout' -import DesktopView from '@/core/components/views/DesktopView' -import MobileView from '@/core/components/views/MobileView' -import LoginComponent from '@/lib/auth/components/Login' +import Seo from '@/core/components/Seo'; +import SimpleFooter from '@/core/components/elements/Footer/SimpleFooter'; +import BasicLayout from '@/core/components/layouts/BasicLayout'; +import DesktopView from '@/core/components/views/DesktopView'; +import MobileView from '@/core/components/views/MobileView'; +import LoginComponent from '@/lib/auth/components/Login'; +import AccountActivation from '~/modules/account-activation'; export default function Login() { return ( @@ -20,6 +21,8 @@ export default function Login() { + + - ) + ); } diff --git a/src/pages/register.jsx b/src/pages/register.jsx index f79d6a4e..6112c72b 100644 --- a/src/pages/register.jsx +++ b/src/pages/register.jsx @@ -1,9 +1,3 @@ -import Seo from '@/core/components/Seo'; -import SimpleFooter from '@/core/components/elements/Footer/SimpleFooter'; -import BasicLayout from '@/core/components/layouts/BasicLayout'; -import DesktopView from '@/core/components/views/DesktopView'; -import MobileView from '@/core/components/views/MobileView'; -import RegisterComponent from '@/lib/auth/components/Register'; import RegisterPage from '~/pages/register'; export default function Register() { -- cgit v1.2.3