feat: open modal login/ registe in page account (without login)

:%s
This commit is contained in:
lytrankieio123
2021-09-14 17:21:49 +07:00
parent 9987eda297
commit af93b0ab06
3 changed files with 28 additions and 15 deletions

View File

@@ -1,5 +1,5 @@
import classNames from 'classnames' import classNames from 'classnames'
import React, { useState } from 'react' import React, { useEffect, useState } from 'react'
import ModalCommon from '../ModalCommon/ModalCommon' import ModalCommon from '../ModalCommon/ModalCommon'
import FormLogin from './components/FormLogin/FormLogin' import FormLogin from './components/FormLogin/FormLogin'
import FormRegister from './components/FormRegister/FormRegister' import FormRegister from './components/FormRegister/FormRegister'
@@ -8,11 +8,20 @@ import s from './ModalAuthenticate.module.scss'
interface Props { interface Props {
visible: boolean, visible: boolean,
closeModal: () => void, closeModal: () => void,
mode?: '' | 'register'
} }
const ModalAuthenticate = ({ visible, closeModal }: Props) => { const ModalAuthenticate = ({ visible, mode, closeModal }: Props) => {
const [isLogin, setIsLogin] = useState<boolean>(true) const [isLogin, setIsLogin] = useState<boolean>(true)
useEffect(() => {
if (mode === 'register') {
setIsLogin(false)
} else {
setIsLogin(true)
}
}, [mode])
const onSwitch = () => { const onSwitch = () => {
setIsLogin(!isLogin) setIsLogin(!isLogin)
} }

View File

@@ -22,11 +22,13 @@
} }
.dontHaveAccount{ .dontHaveAccount{
@apply flex justify-center font-bold; @apply flex justify-center font-bold;
div{ button {
color:var(--text-active); all: unset;
}
span{
color:var(--primary); color:var(--primary);
cursor: pointer;
&:focus-visible {
outline: 2px solid var(--text-active);
}
} }
} }

View File

@@ -1,10 +1,11 @@
import React,{memo} from "react" import React,{memo, useState} from "react"
import { ButtonCommon, StaticImage } from "src/components/common"; import { ButtonCommon, StaticImage } from "src/components/common";
import s from './AccountSignIn.module.scss'; import s from './AccountSignIn.module.scss';
import {LANGUAGE} from 'src/utils/language.utils'; import {LANGUAGE} from 'src/utils/language.utils';
import AccountSignInImg from '../../../../../public/assets/images/accountsignin.png' import AccountSignInImg from '../../../../../public/assets/images/accountsignin.png'
import Link from 'next/link';
import { useRouter } from 'next/router'; import { useRouter } from 'next/router';
import ModalAuthenticate from "src/components/common/ModalAuthenticate/ModalAuthenticate";
import { useModalCommon } from "src/components/hooks";
interface AccountSignIn { interface AccountSignIn {
@@ -12,12 +13,12 @@ interface AccountSignIn {
const AccountSignIn = memo(({ } : AccountSignIn) => { const AccountSignIn = memo(({ } : AccountSignIn) => {
const router = useRouter(); const router = useRouter();
const { visible: visibleModalAuthen, closeModal: closeModalAuthen, openModal: openModalAuthen } = useModalCommon({ initialValue: false })
const [isModeAuthenSignup, setIsModeAuthenSignup] = useState<boolean>(false)
function openLogin(){ const openModalSignup = () => {
router.push({ setIsModeAuthenSignup(true)
pathname: `${router.pathname}/query`, openModalAuthen()
search: '?openLogin=true'
});
} }
return ( return (
@@ -31,13 +32,14 @@ const AccountSignIn = memo(({ } : AccountSignIn) => {
Sign in to get more interesting <br/> features Sign in to get more interesting <br/> features
</div> </div>
<div className={s.btn}> <div className={s.btn}>
<ButtonCommon size="default" type = 'primary' onClick={openLogin}>{LANGUAGE.BUTTON_LABEL.SIGNIN}</ButtonCommon> <ButtonCommon size="default" type = 'primary' onClick={openModalAuthen}>{LANGUAGE.BUTTON_LABEL.SIGNIN}</ButtonCommon>
</div> </div>
<div className={s.dontHaveAccount}> <div className={s.dontHaveAccount}>
<div>Don't have an account? &nbsp;</div> <span><a><Link href="/"> Create Account</Link></a></span> <div>Don't have an account? &nbsp;</div> <span><button onClick={openModalSignup}>Create Account</button></span>
</div> </div>
</div> </div>
</div> </div>
<ModalAuthenticate visible={visibleModalAuthen} closeModal={closeModalAuthen} mode={isModeAuthenSignup ? 'register' : ''} />
</> </>
) )
}); });