diff --git a/src/component/common/Auth/Complete/index.tsx b/src/component/common/Auth/Complete/index.tsx index d6b3be89..284a6bb7 100644 --- a/src/component/common/Auth/Complete/index.tsx +++ b/src/component/common/Auth/Complete/index.tsx @@ -1,5 +1,6 @@ import { Link } from 'react-router-dom'; import { ReactComponent as Check } from 'assets/svg/auth/check.svg'; +import useStepStore from 'store/useStepStore'; import styles from './Complete.module.scss'; interface CompleteProps { @@ -12,6 +13,11 @@ interface CompleteProps { export default function Complete({ title, topText, bottomText, link, linkText, }: CompleteProps) { + const { setStep } = useStepStore(); + + const initialize = () => { + setStep(0); + }; return (
@@ -26,7 +32,7 @@ export default function Complete({ {bottomText}
- {linkText} + {linkText}
); } diff --git a/src/page/Auth/Signup/component/UserEmail/index.tsx b/src/page/Auth/Signup/component/UserEmail/index.tsx index 95fa7133..0c0dcb08 100644 --- a/src/page/Auth/Signup/component/UserEmail/index.tsx +++ b/src/page/Auth/Signup/component/UserEmail/index.tsx @@ -44,17 +44,17 @@ export default function UserEmail() { 이메일 인증
- { (errors.email || (errorMessage && watch().email === email)) && ( - typeof msg === 'string') - } - /> + {(errors.email || (errorMessage && watch().email === email)) && ( + typeof msg === 'string') + } + /> )} {isOpen && }
{isOpen ? ( <> - { verificateError ? + {verificateError ? : {`* 제한시간 ${getTime()}`}}
{userData.email} -  으로 +  으로
발송된 인증번호 6자리를 입력해 주세요
- {verificateError && } + {errorMessage && } {`* 제한시간 ${getTime()}`}
- +
) diff --git a/src/page/Auth/Signup/hooks/useAuthCheck.ts b/src/page/Auth/Signup/hooks/useAuthCheck.ts index 149bb43b..78e3a25d 100644 --- a/src/page/Auth/Signup/hooks/useAuthCheck.ts +++ b/src/page/Auth/Signup/hooks/useAuthCheck.ts @@ -9,7 +9,7 @@ export default function useAuthCheck(userEmail:string, isMobile:boolean) { const { status, refetch, isError, error, } = useGenerateAuthCode(email); - const errorMessage = status === 'error' ? Object(error).response.data.message : null; + const errorMessage = status === 'error' ? Object(error).message : null; const onSubmit:SubmitHandler = (data) => { setEmail(() => (data.email ? data.email : '')); }; diff --git a/src/page/Auth/Signup/view/CompletePage/index.tsx b/src/page/Auth/Signup/view/CompletePage/index.tsx index 9adb1235..ce38903d 100644 --- a/src/page/Auth/Signup/view/CompletePage/index.tsx +++ b/src/page/Auth/Signup/view/CompletePage/index.tsx @@ -1,8 +1,15 @@ import { Link } from 'react-router-dom'; import { ReactComponent as Check } from 'assets/svg/auth/check.svg'; +import useStepStore from 'store/useStepStore'; import styles from './Complete.module.scss'; export default function Complete() { + const { setStep } = useStepStore(); + + const initialize = () => { + setStep(0); // 회원가입을 진행하면서 전역으로 사용하는 step이 증가하고 있음, 따라서 step을 초기화해야 가게 정보 입력 시 처음 스텝부터 시작 + }; + return (
@@ -15,7 +22,7 @@ export default function Complete() { 가입 허가가 승인되면 로그인이 가능합니다.
- 로그인 화면 바로가기 + 로그인 화면 바로가기 ); } diff --git a/src/page/ShopRegistration/view/Mobile/ShopConfirmation/index.tsx b/src/page/ShopRegistration/view/Mobile/ShopConfirmation/index.tsx index e1ee181f..ba4d2f84 100644 --- a/src/page/ShopRegistration/view/Mobile/ShopConfirmation/index.tsx +++ b/src/page/ShopRegistration/view/Mobile/ShopConfirmation/index.tsx @@ -11,9 +11,11 @@ import { useEffect } from 'react'; import { DAY_OF_WEEK, WEEK } from 'utils/constant/week'; import useModalStore from 'store/modalStore'; import CheckSameTime from 'page/ShopRegistration/hooks/CheckSameTime'; +import { isKoinError } from '@bcsdlab/koin'; +import showToast from 'utils/ts/showToast'; import styles from './ShopConfirmation.module.scss'; -const usePostData = (setStep: (step: number) => void) => { +export const usePostData = (setStep: (step: number) => void) => { const queryClient = useQueryClient(); const mutation = useMutation({ mutationFn: (form: OwnerShop) => postShop(form), @@ -21,6 +23,11 @@ const usePostData = (setStep: (step: number) => void) => { setStep(5); queryClient.refetchQueries(); }, + onError: (e) => { + if (isKoinError(e)) { + showToast('error', e.message); + } + }, }); return mutation; }; diff --git a/src/page/ShopRegistration/view/PC/index.tsx b/src/page/ShopRegistration/view/PC/index.tsx index a38d0fec..b243c019 100644 --- a/src/page/ShopRegistration/view/PC/index.tsx +++ b/src/page/ShopRegistration/view/PC/index.tsx @@ -19,14 +19,13 @@ import { WEEK, DAY_OF_WEEK } from 'utils/constant/week'; import { SubmitHandler, useForm } from 'react-hook-form'; import { zodResolver } from '@hookform/resolvers/zod'; import { OwnerShop } from 'model/shopInfo/ownerShop'; -import { useMutation } from '@tanstack/react-query'; -import { postShop } from 'api/shop'; import useImagesUpload from 'utils/hooks/useImagesUpload'; import CheckSameTime from 'page/ShopRegistration/hooks/CheckSameTime'; import useOperateTimeState from 'page/ShopRegistration/hooks/useOperateTimeState'; import useShopRegistrationStore from 'store/shopRegistration'; import ErrorMessage from 'page/Auth/Signup/component/ErrorMessage'; import { ERRORMESSAGE } from 'page/ShopRegistration/constant/errorMessage'; +import { usePostData } from 'page/ShopRegistration/view/Mobile/ShopConfirmation/index'; import styles from './ShopRegistrationPC.module.scss'; export default function ShopRegistrationPC() { @@ -99,17 +98,14 @@ export default function ShopRegistrationPC() { isAllClosed, } = CheckSameTime(); + const mutation = usePostData(setStep); + const { register, handleSubmit, setValue, formState: { errors }, } = useForm({ resolver: zodResolver(OwnerShop), }); - const mutation = useMutation({ - mutationFn: (form: OwnerShop) => postShop(form), - onSuccess: () => setStep(5), - }); - const formatPhoneNumber = (inputNumber: string) => { const phoneNumber = inputNumber.replace(/\D/g, ''); const formattedPhoneNumber = phoneNumber.replace(/(\d{3})(\d{4})(\d{4})/, '$1-$2-$3'); @@ -205,7 +201,7 @@ export default function ShopRegistrationPC() { )} {uploadError === '' && imageUrls.length === 0 && isError - && } + && } {uploadError !== '' && }
diff --git a/src/query/auth.ts b/src/query/auth.ts index b2c02408..c31efc75 100644 --- a/src/query/auth.ts +++ b/src/query/auth.ts @@ -57,13 +57,15 @@ export const useLogin = () => { setLoginError('비밀번호가 일치하지 않습니다.'); } if (err.status === 403) { - setLoginError('이메일 인증을 완료해주세요.'); + setLoginError('관리자 승인 대기 중입니다.'); } if (err.status === 404) { setLoginError('가입되지 않은 이메일입니다.'); } if (err.status === 500) { setLoginError('서버 오류가 발생했습니다.'); + } else { + sendClientError(err); } sessionStorage.removeItem('access_token'); localStorage.removeItem('refresh_token');