diff options
Diffstat (limited to 'src/lib/auth/components')
| -rw-r--r-- | src/lib/auth/components/LoginDesktop.jsx | 28 | ||||
| -rw-r--r-- | src/lib/auth/components/LoginMobile.jsx | 24 | ||||
| -rw-r--r-- | src/lib/auth/components/RegisterDesktop.jsx | 14 | ||||
| -rw-r--r-- | src/lib/auth/components/RegisterMobile.jsx | 13 |
4 files changed, 64 insertions, 15 deletions
diff --git a/src/lib/auth/components/LoginDesktop.jsx b/src/lib/auth/components/LoginDesktop.jsx index 3a7477b9..42fa8896 100644 --- a/src/lib/auth/components/LoginDesktop.jsx +++ b/src/lib/auth/components/LoginDesktop.jsx @@ -9,27 +9,39 @@ import { useRouter } from 'next/router' import { useContext, useEffect, useState } from 'react' import { getAuth, setAuth } from '@/core/utils/auth' import { setCookie } from 'cookies-next' +import BottomPopup from '@/core/components/elements/Popup/BottomPopup' +import Spinner from '@/core/components/elements/Spinner/Spinner' +import LogoSpinner from '@/core/components/elements/Spinner/LogoSpinner' +import odooApi from '@/core/api/odooApi' const LoginDesktop = () => { - const { handleSubmit, handleChangeInput, isLoading, isValid, alert, emailRef, passwordRef } = + const { handleSubmit, handleChangeInput, isLoading, isValid, alert, emailRef, passwordRef, handleGoogleSubmit } = useLogin() const router = useRouter() const [query, setQuery] = useState(router?.query?.next || '/') const { data: session } = useSession() - const auth = getAuth() const handleGoogle = async () => { - const url = query != '/' ? '/login?next=' + query : '/login' + const url = query != '/' ? '/login?source=google&next=' + query : '/login?source=google' await signIn('google', { callbackUrl: url }) } - useEffect(() => { - if(session){ - setCookie('auth', JSON.stringify(session?.odooUser)) - router.push(query) + if (session) { + handleGoogleSubmit(session) } - },[session]) + }, [session]) + + if (router.query.source) { + return ( + <BottomPopup active={true} close=''> + <div className='leading-7 text-gray_r-12/80 flex justify-center'>Mohon Tunggu</div> + <div className='container flex justify-center my-4'> + <LogoSpinner width={48} height={48} /> + </div> + </BottomPopup> + ) + } return ( <DesktopView> diff --git a/src/lib/auth/components/LoginMobile.jsx b/src/lib/auth/components/LoginMobile.jsx index 68ceb769..095f4174 100644 --- a/src/lib/auth/components/LoginMobile.jsx +++ b/src/lib/auth/components/LoginMobile.jsx @@ -9,27 +9,41 @@ import { useSession, signIn, SignOut } from 'next-auth/react' import { useRouter } from 'next/router' import { useEffect, useState } from 'react' import { setCookie } from 'cookies-next' +import BottomPopup from '@/core/components/elements/Popup/BottomPopup' +import LogoSpinner from '@/core/components/elements/Spinner/LogoSpinner' +import odooApi from '@/core/api/odooApi' +import { getAuth } from '@/core/utils/auth' const LoginMobile = () => { - const { handleSubmit, handleChangeInput, isLoading, isValid, alert, emailRef, passwordRef } = + const { handleSubmit, handleChangeInput, isLoading, isValid, alert, emailRef, passwordRef, handleGoogleSubmit } = useLogin() const router = useRouter() const [query, setQuery] = useState(router?.query?.next || '/') const { data: session } = useSession() + const auth = getAuth() const handleGoogle = async () => { - const url = query != '/' ? '/login?next=' + query : '/login' + const url = query != '/' ? '/login?source=google&next=' + query : '/login?source=google' await signIn('google', { callbackUrl: url }) - setCookie('auth', JSON.stringify(session?.odooUser)) } useEffect(() => { if (session) { - setCookie('auth', JSON.stringify(session?.odooUser)) - router.push(query) + handleGoogleSubmit(session) } }, [session]) + if (router.query.source) { + return ( + <BottomPopup active={true} close={true}> + <div className='leading-7 text-gray_r-12/80 flex justify-center'>Mohon Tunggu</div> + <div className='container flex justify-center my-4'> + <LogoSpinner width={48} height={48} /> + </div> + </BottomPopup> + ) + } + return ( <MobileView> <div className='p-6 pt-10 flex flex-col items-center min-h-screen'> diff --git a/src/lib/auth/components/RegisterDesktop.jsx b/src/lib/auth/components/RegisterDesktop.jsx index 86a5027d..a2bc98c2 100644 --- a/src/lib/auth/components/RegisterDesktop.jsx +++ b/src/lib/auth/components/RegisterDesktop.jsx @@ -10,6 +10,7 @@ import { useEffect } from 'react' import { setCookie } from 'cookies-next' import { signIn, useSession } from 'next-auth/react' import { useRouter } from 'next/router' +import LogoSpinner from '@/core/components/elements/Spinner/LogoSpinner' const RegisterDesktop = () => { const { @@ -31,7 +32,7 @@ const RegisterDesktop = () => { const router = useRouter() const handleGoogle = async () => { - await signIn('google', { callbackUrl: '/register' }) + await signIn('google', { callbackUrl: '/register?source=google' }) } useEffect(() => { @@ -41,6 +42,17 @@ const RegisterDesktop = () => { } },[session]) + if (router.query.source) { + return ( + <BottomPopup active={true} close=''> + <div className='leading-7 text-gray_r-12/80 flex justify-center'>Mohon Tunggu</div> + <div className='container flex justify-center my-4'> + <LogoSpinner width={48} height={48} /> + </div> + </BottomPopup> + ) + } + return ( <DesktopView> <div className='container mx-auto'> diff --git a/src/lib/auth/components/RegisterMobile.jsx b/src/lib/auth/components/RegisterMobile.jsx index c21c9325..2e918a14 100644 --- a/src/lib/auth/components/RegisterMobile.jsx +++ b/src/lib/auth/components/RegisterMobile.jsx @@ -11,6 +11,7 @@ import { signIn, useSession } from 'next-auth/react' import { useRouter } from 'next/router' import { setCookie } from 'cookies-next' import { useEffect } from 'react' +import LogoSpinner from '@/core/components/elements/Spinner/LogoSpinner' const RegisterMobile = () => { const { @@ -32,7 +33,7 @@ const RegisterMobile = () => { const router = useRouter() const handleGoogle = async () => { - await signIn('google', { callbackUrl: '/register' }) + await signIn('google', { callbackUrl: '/register?source=google' }) } useEffect(() => { @@ -42,6 +43,16 @@ const RegisterMobile = () => { } },[session]) + if (router.query.source) { + return ( + <BottomPopup active={true} close=''> + <div className='leading-7 text-gray_r-12/80 flex justify-center'>Mohon Tunggu</div> + <div className='container flex justify-center my-4'> + <LogoSpinner width={48} height={48} /> + </div> + </BottomPopup> + ) + } return ( <MobileView> <div className='p-6 pt-10 flex flex-col items-center min-h-screen'> |
