From 9dcb4967176b1b6e9ed72d1ef1625550141d7f9e Mon Sep 17 00:00:00 2001 From: 1g2g Date: Tue, 14 Nov 2023 00:41:58 +0900 Subject: [PATCH 1/2] =?UTF-8?q?fix:=20registration=20=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?params=EB=A1=9C=20=EB=84=98=EA=B8=B0=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/RedirectPage/RedirectPage.tsx | 13 +++++++------ src/pages/RegisterPage/RegisterPage.tsx | 11 ++++++++--- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/pages/RedirectPage/RedirectPage.tsx b/src/pages/RedirectPage/RedirectPage.tsx index bf0667e3..c5f586f2 100644 --- a/src/pages/RedirectPage/RedirectPage.tsx +++ b/src/pages/RedirectPage/RedirectPage.tsx @@ -27,25 +27,26 @@ export const RedirectPage = () => { const { setLoginInfo } = useLoginInfoStore(); const { setAccessToken } = useTokenStore(); - const getLoginInfo = useCallback(async () => { + const fetchLoginInfo = useCallback(async () => { const { data } = await refetch(); if (!data) { return; } - setLoginInfo(data); - setAccessToken(data.accessToken); if (isAuthenticated(data)) { + setLoginInfo(data); + setAccessToken(data.accessToken); + navigate('/'); } else { - navigate('/register'); + navigate('/register', { state: data }); } }, [navigate, refetch, setLoginInfo, setAccessToken]); useEffect(() => { - getLoginInfo(); - }, [getLoginInfo]); + fetchLoginInfo(); + }, [fetchLoginInfo]); return
로그인 중입니다.
; }; diff --git a/src/pages/RegisterPage/RegisterPage.tsx b/src/pages/RegisterPage/RegisterPage.tsx index f9427037..b12706c0 100644 --- a/src/pages/RegisterPage/RegisterPage.tsx +++ b/src/pages/RegisterPage/RegisterPage.tsx @@ -1,5 +1,6 @@ import { useState } from 'react'; import { useNavigate } from 'react-router-dom'; +import { useLocation } from 'react-router-dom'; import { LogoImage } from '@pages/LoginPage/LoginPage.style'; @@ -16,8 +17,6 @@ import { useRegistrationMutation } from '@hooks/mutations/useRegistrationMutatio import { theme } from '@styles/theme'; -import { useLoginInfoStore } from '@stores/loginInfo.store'; - import { Position } from '@type/models/Position'; import { SEOUL } from '@consts/location'; @@ -26,6 +25,7 @@ import { POSITIONS_BUTTON } from '@consts/positions'; import LOGO_SRC from '@assets/logoSvg.svg'; +// 1번 라인 import { FieldContainer, Main, @@ -36,7 +36,10 @@ import { export const RegisterPage = () => { const navigate = useNavigate(); - const loginInfo = useLoginInfoStore((state) => state.loginInfo); + + const { state } = useLocation(); + const loginInfo = state; + if (!loginInfo) { throw new Error('no login info available'); } @@ -65,10 +68,12 @@ export const RegisterPage = () => { const submitRegistration = () => { const { email, nickname, profileImageUrl, oauthId, oauthProvider } = loginInfo; + if (!selectedLocation) { window.alert('지역을 선택해주세요'); return; } + mutate({ email, nickname, From 8c04e09bf6002423a4755ad61900a52256b4cf9e Mon Sep 17 00:00:00 2001 From: 1g2g Date: Tue, 14 Nov 2023 13:26:36 +0900 Subject: [PATCH 2/2] =?UTF-8?q?feat:=20=EC=9E=84=EC=8B=9C=20=EB=A1=9C?= =?UTF-8?q?=EA=B7=B8=EC=95=84=EC=9B=83=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/AllServicesPage/AllServicesPage.tsx | 33 +++++++++++-------- 1 file changed, 20 insertions(+), 13 deletions(-) diff --git a/src/pages/AllServicesPage/AllServicesPage.tsx b/src/pages/AllServicesPage/AllServicesPage.tsx index 55bbe249..7b54b1bb 100644 --- a/src/pages/AllServicesPage/AllServicesPage.tsx +++ b/src/pages/AllServicesPage/AllServicesPage.tsx @@ -28,20 +28,19 @@ import { MenuItem } from './MenuItem'; export const AllServicesPage = () => { const loginInfo = useLoginInfoStore((state) => state.loginInfo); + const myId = loginInfo?.id ? String(loginInfo?.id) : null; + const navigate = useNavigate(); const moveToPage = (pathName: string) => { navigate(pathName); }; - const getMyId = (): string | null => { - if (!loginInfo?.id) { - return null; + const logout = () => { + if (myId) { + localStorage.removeItem('LOGIN_INFO_PERSIST'); + localStorage.removeItem('ACCESS_TOKEN_PERSIST'); } - - const { id } = loginInfo; - - return String(id); }; return ( @@ -74,7 +73,7 @@ export const AllServicesPage = () => { icon={} pageName="내 정보" onClickMenuItem={() => - moveToPage(PATH_NAME.GET_PROFILE_PATH(getMyId() ?? '0')) + myId && moveToPage(PATH_NAME.GET_PROFILE_PATH(myId)) } /> } pageName="소셜링" /> @@ -86,12 +85,14 @@ export const AllServicesPage = () => { } pageName="내가 참여한 게스트 매치" - onClickMenuItem={() => moveToPage(PATH_NAME.GAMES_PARTICIPATE)} + onClickMenuItem={() => + myId && moveToPage(PATH_NAME.GAMES_PARTICIPATE) + } /> } pageName="내가 만든 게스트 매치" - onClickMenuItem={() => moveToPage(PATH_NAME.GAMES_HOST)} + onClickMenuItem={() => myId && moveToPage(PATH_NAME.GAMES_HOST)} /> @@ -101,12 +102,14 @@ export const AllServicesPage = () => { } pageName="내가 속한 크루" - onClickMenuItem={() => moveToPage(PATH_NAME.CREWS_PARTICIPATE)} + onClickMenuItem={() => + myId && moveToPage(PATH_NAME.CREWS_PARTICIPATE) + } /> } pageName="내가 만든 크루" - onClickMenuItem={() => moveToPage(PATH_NAME.CREWS_CHIEF)} + onClickMenuItem={() => myId && moveToPage(PATH_NAME.CREWS_CHIEF)} /> } pageName="크루 랭킹" /> @@ -114,7 +117,11 @@ export const AllServicesPage = () => { 설정 - } pageName="로그아웃" /> + } + pageName="로그아웃" + onClickMenuItem={logout} + />