Skip to content

Commit 9d6bb00

Browse files
authored
Merge pull request #86 from SWM-FIRE/FIRE-401-fe-로그인-정보-없으면-튕기게-설정
FIRE-401-fe-로그인-정보-없으면-튕기게-설정
2 parents f57d8aa + 684f107 commit 9d6bb00

File tree

6 files changed

+55
-31
lines changed

6 files changed

+55
-31
lines changed

src/components/login/UserInput.tsx

+25-2
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,35 @@ export default function UserInput({
3232
};
3333

3434
useEffect(() => {
35-
if (!localStorage.getItem('uid')) {
35+
/**
36+
* @brief 유저 정보 수정
37+
* validUID인 경우 -> 유저 정보 수정
38+
* invalidUID인 경우 -> 유저 정보 생성
39+
*/
40+
if (localStorage.getItem('uid')) {
41+
const myUid = localStorage.getItem('uid');
42+
setUid(myUid);
43+
console.log('my uid', myUid);
44+
axios.get((API.USER as string) + myUid).then((res) => {
45+
console.log('axios good');
46+
if (res.data.uid) {
47+
// valid uid
48+
console.log('valid uid', res.data.uid);
49+
type = 'put';
50+
} else {
51+
console.log('will post');
52+
// invalid uid
53+
type = 'post';
54+
}
55+
});
56+
} else {
57+
console.log('uid is null');
58+
// no uid
3659
const newUID = uuidv4();
3760
setUid(newUID);
3861
localStorage.setItem('uid', newUID);
3962
type = 'post';
40-
} else type = 'put';
63+
}
4164
}, []);
4265

4366
const userRequest = async (newUser: userInterface) => {

src/components/main/Block.tsx

-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ export default function Block({
2222
event.preventDefault();
2323
navigate(`/ready/${itemId}`);
2424
};
25-
console.log(theme);
2625
return (
2726
<Container main={isMain}>
2827
<AvatarContainer>

src/hooks/useSetSelf.ts

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import { useEffect } from 'react';
2+
import axios from 'axios';
3+
import { API } from '../config';
4+
import UserStore from '../stores/userStore';
5+
6+
export default function useSetSelf() {
7+
const { setNickname, setUid, setAvatar } = UserStore();
8+
9+
useEffect(() => {
10+
if (localStorage.getItem('uid')) {
11+
const myUid = localStorage.getItem('uid');
12+
axios.get((API.USER as string) + myUid).then((res) => {
13+
if (res.data.uid) {
14+
console.log('existing user', res.data);
15+
setNickname(res.data.nickname);
16+
setAvatar(res.data.avatar);
17+
setUid(myUid);
18+
}
19+
});
20+
}
21+
}, []);
22+
}

src/hooks/useUserInfo.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import axios from 'axios';
22
import { useQuery } from 'react-query';
33
import { API } from '../config';
44

5-
const getUser = async (senderUid) => {
5+
const getUser = async (senderUid: string) => {
66
const { data } = await axios.get((API.USER as string) + senderUid);
77
return data;
88
};
99

10-
export default function useUserInfo(senderUid) {
10+
export default function useUserInfo(senderUid: string) {
1111
return useQuery(['userData', 'getOne'], () => getUser(senderUid));
1212
}

src/pages/LandingPage.tsx

+3-13
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,20 @@
1-
import { useEffect, useState } from 'react';
1+
import { useState } from 'react';
22
import styled from 'styled-components';
33
import Scrolls from '../components/main/Scrolls';
44
import Header from '../components/main/Header';
55
import Title from '../components/main/TitleContainer';
66
import Modal from '../components/layout/Modal';
77
import LoginModal from '../components/login/LoginModal';
8-
import UserStore from '../stores/userStore';
8+
import useSetSelf from '../hooks/useSetSelf';
99
import LandingPage from '../components/main/landingPage/LandingPage';
1010

1111
export default function Main() {
1212
const [isModal, setIsModal] = useState(false);
13-
const { setNickname, uid, setUid, setAvatar } = UserStore();
14-
15-
useEffect(() => {
16-
if (localStorage.getItem('uid')) {
17-
console.log('existing user', uid);
18-
setNickname(localStorage.getItem('nickname'));
19-
setUid(localStorage.getItem('uid'));
20-
setAvatar(localStorage.getItem('avatar'));
21-
}
22-
}, []);
13+
useSetSelf();
2314

2415
const closeModalHandler = () => {
2516
setIsModal(false);
2617
};
27-
2818
const openModalHandler = () => {
2919
setIsModal(true);
3020
};

src/pages/Main.tsx

+3-13
Original file line numberDiff line numberDiff line change
@@ -1,29 +1,19 @@
1-
import { useEffect, useState } from 'react';
1+
import { useState } from 'react';
22
import styled from 'styled-components';
33
import RoomCards from '../components/main/RoomCards';
44
import Header from '../components/main/Header';
55
import MainTitle from '../components/main/MainTitle';
66
import Modal from '../components/layout/Modal';
77
import LoginModal from '../components/login/LoginModal';
8-
import UserStore from '../stores/userStore';
8+
import useSetSelf from '../hooks/useSetSelf';
99

1010
export default function Main() {
1111
const [isModal, setIsModal] = useState(false);
12-
const { setNickname, uid, setUid, setAvatar } = UserStore();
13-
14-
useEffect(() => {
15-
if (localStorage.getItem('uid')) {
16-
console.log('existing user', uid);
17-
setNickname(localStorage.getItem('nickname'));
18-
setUid(localStorage.getItem('uid'));
19-
setAvatar(localStorage.getItem('avatar'));
20-
}
21-
}, []);
2212

13+
useSetSelf();
2314
const closeModalHandler = () => {
2415
setIsModal(false);
2516
};
26-
2717
const openModalHandler = () => {
2818
setIsModal(true);
2919
};

0 commit comments

Comments
 (0)