diff --git a/src/assets/svg/error/auth-error.svg b/src/assets/svg/error/auth-error.svg new file mode 100644 index 00000000..6a164071 --- /dev/null +++ b/src/assets/svg/error/auth-error.svg @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/src/page/Auth/FindPassword/SendAuthNumber/SendAuthNumber.module.scss b/src/page/Auth/FindPassword/SendAuthNumber/SendAuthNumber.module.scss index e30531b8..ae3d1172 100644 --- a/src/page/Auth/FindPassword/SendAuthNumber/SendAuthNumber.module.scss +++ b/src/page/Auth/FindPassword/SendAuthNumber/SendAuthNumber.module.scss @@ -33,6 +33,14 @@ &--auth { width: 255px; } + + &--error { + border: 1px solid #f7941e; + } + + &--normal { + border: 1px solid #d2dae2; + } } &__label { @@ -46,6 +54,14 @@ flex-direction: column; gap: 8px; } + + &__error { + display: flex; + color: #f7941e; + font-size: 12px; + align-items: center; + gap: 8px; + } } .auth-button { diff --git a/src/page/Auth/FindPassword/SendAuthNumber/index.tsx b/src/page/Auth/FindPassword/SendAuthNumber/index.tsx index 3c9ad4ed..f33a0de0 100644 --- a/src/page/Auth/FindPassword/SendAuthNumber/index.tsx +++ b/src/page/Auth/FindPassword/SendAuthNumber/index.tsx @@ -1,6 +1,7 @@ import { Outlet } from 'react-router-dom'; import { ReactComponent as KoinLogo } from 'assets/svg/auth/koin-logo.svg'; -import { useState } from 'react'; +import { ReactComponent as ErrorIcon } from 'assets/svg/error/auth-error.svg'; +import { useEffect, useState } from 'react'; import cn from 'utils/ts/className'; import { useVerifyEmail, useSubmit } from 'query/auth'; import useEmailAuthStore from 'store/useEmailAuth'; @@ -10,7 +11,19 @@ export default function FindPassword() { const { email, setEmail } = useEmailAuthStore(); const [verify, setVerify] = useState(''); const { verifyEmail } = useVerifyEmail(); - const submit = useSubmit(); + const { authNumber } = useSubmit(); + + useEffect(() => { + const handleBeforeUnload = () => { + sessionStorage.removeItem('email-storage'); + setEmail(''); + }; + window.addEventListener('beforeunload', handleBeforeUnload); + + return () => { + window.removeEventListener('beforeunload', handleBeforeUnload); + }; + }, [setEmail]); return ( <> @@ -24,6 +37,8 @@ export default function FindPassword() { className={cn({ [styles.form__input]: true, [styles['form__input--auth']]: true, + [styles['form__input--error']]: verifyEmail.errorMessage, + [styles['form__input--normal']]: verifyEmail.isSuccess, })} onChange={(e) => setEmail(e.target.value)} type="text" @@ -38,21 +53,36 @@ export default function FindPassword() { {verifyEmail.isSuccess ? '재발송' : '인증번호 발송'} + {!verifyEmail.isSuccess && ( + + {verifyEmail.errorMessage && } + {verifyEmail.errorMessage} + + )}