Skip to content

Commit d093d52

Browse files
committed
feat : add email storing logic
1 parent 59eeed8 commit d093d52

2 files changed

Lines changed: 28 additions & 8 deletions

File tree

src/screen/auth/ui/AuthScreen.tsx

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,12 @@ import { LoginBg } from '@/assets/image';
2121

2222
import { replace } from '@/shared/utils';
2323
import { RAW_PATH } from '@/shared/constants';
24-
import { userTokenAtom } from '@/shared/atom';
24+
import { userEmailAtom, userTokenAtom } from '@/shared/atom';
2525
import Loader from '@/shared/ui/Loader';
2626

2727
export default function AuthScreen() {
2828
const setUserToken = useSetAtom(userTokenAtom);
29+
const setUserEmail = useSetAtom(userEmailAtom);
2930
const params = new URLSearchParams(location.search);
3031

3132
const code = params.get('code');
@@ -34,12 +35,17 @@ export default function AuthScreen() {
3435

3536
useEffect(() => {
3637
if (data) {
37-
const kakaoAccessToken = data.tokenDto.accessToken;
38-
setUserToken({
39-
accessToken: kakaoAccessToken,
40-
});
41-
if (data.signedUp) replace(RAW_PATH.HOME);
42-
else {
38+
if (data.signedUp) {
39+
const kakaoAccessToken = data.tokenDto.accessToken;
40+
setUserToken({
41+
accessToken: kakaoAccessToken,
42+
});
43+
replace(RAW_PATH.HOME);
44+
} else {
45+
const kakaoEmail = data.kakaoEmail;
46+
setUserEmail({
47+
kakaoEmail: kakaoEmail,
48+
});
4349
alert('회원가입 화면으로 이동합니다!');
4450
replace(RAW_PATH.SIGNUP);
4551
}
@@ -48,7 +54,7 @@ export default function AuthScreen() {
4854
alert('로그인에 실패했어요. 다시 시도해 주세요!');
4955
replace(RAW_PATH.HOME);
5056
}
51-
}, [data, isError, setUserToken]);
57+
}, [data, isError, setUserToken, setUserEmail]);
5258

5359
return (
5460
<div className="container-mobile relative grid h-screen place-items-center overflow-hidden">

src/shared/atom/user.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,28 @@ type Token = {
55
accessToken: string;
66
};
77

8+
type Email = {
9+
kakaoEmail: string;
10+
};
11+
812
const initialUserState = {
913
accessToken: '',
1014
};
1115

16+
const initialEmailState = {
17+
kakaoEmail: '',
18+
};
19+
1220
const sessionStorage = createJSONStorage(() => window.sessionStorage);
1321

1422
export const userTokenAtom = atomWithStorage<Token>(
1523
'userToken',
1624
initialUserState,
1725
sessionStorage as AsyncStorage<Token>,
1826
);
27+
28+
export const userEmailAtom = atomWithStorage<Email>(
29+
'userToken',
30+
initialEmailState,
31+
sessionStorage as AsyncStorage<Email>,
32+
);

0 commit comments

Comments
 (0)