Skip to content

Commit d92fb24

Browse files
authored
Merge pull request #55 from boostcampwm-2022/fix/#50-B
Fix/#50-B: user μ΄ˆκΈ°κ°’μ΄ 없을 λ•Œ λ Œλ”λ§ λ˜λŠ” 문제 ν•΄κ²°
2 parents 3e1b49a + d38ac04 commit d92fb24

File tree

6 files changed

+32
-19
lines changed

6 files changed

+32
-19
lines changed

β€Žclient/src/App.tsxβ€Ž

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import { useState, useEffect } from 'react';
22
import { Routes, Route, useNavigate } from 'react-router-dom';
33
import { getAuth } from 'src/apis/auth';
44
import UserContext, { User } from 'src/contexts/user';
5-
import { LoginPage, OAuthPage, WorkspacePage } from 'src/pages';
5+
import { LoadingPage, LoginPage, OAuthPage, WorkspacePage } from 'src/pages';
66
import 'styles/reset.scss';
77

88
function App() {
9-
const [user, setUser] = useState<User>({ id: -1, name: '', avatarUrl: '' });
9+
const [user, setUser] = useState<User | null>(null);
1010
const navigate = useNavigate();
1111

1212
const autoLogin = async () => {
@@ -22,14 +22,16 @@ function App() {
2222
autoLogin();
2323
}, []);
2424

25-
return (
25+
return user ? (
2626
<UserContext.Provider value={{ user, setUser }}>
2727
<Routes>
2828
<Route path="/" element={<LoginPage />} />
2929
<Route path="/oauth" element={<OAuthPage />} />
3030
<Route path="/workspace" element={<WorkspacePage />} />
3131
</Routes>
3232
</UserContext.Provider>
33+
) : (
34+
<LoadingPage />
3335
);
3436
}
3537

β€Žclient/src/contexts/user.tsβ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ export interface User {
77
}
88

99
interface IUserContext {
10-
user?: User;
11-
setUser: Dispatch<SetStateAction<User>>;
10+
user: User;
11+
setUser: Dispatch<SetStateAction<User | null>>;
1212
}
1313

1414
const UserContext = createContext<IUserContext | null>(null);
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
import cx from 'classnames';
2+
import Loader from 'components/common/Loader';
3+
4+
import style from './style.module.scss';
5+
6+
function LoadingPage() {
7+
return (
8+
<div className={cx(style.container)}>
9+
<Loader size={100} />
10+
</div>
11+
);
12+
}
13+
14+
export default LoadingPage;
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
.container {
2+
display: flex;
3+
align-items: center;
4+
justify-content: center;
5+
width: 100vw;
6+
height: 100vh;
7+
}

β€Žclient/src/pages/OAuth/index.tsxβ€Ž

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,16 @@
1-
import cx from 'classnames';
2-
import Loader from 'components/common/Loader';
31
import { useContext, useEffect } from 'react';
42
import { useLocation, useNavigate } from 'react-router-dom';
53
import { postAuthLogin } from 'src/apis/auth';
64
import UserContext from 'src/contexts/user';
7-
8-
import style from './style.module.scss';
5+
import LoadingPage from 'src/pages/Loading';
96

107
function OAuthPage() {
118
const userContext = useContext(UserContext);
129

1310
if (userContext === null) {
1411
console.log('μœ μ € μ»¨ν…μŠ€νŠΈλ₯Ό 찾을 수 μ—†μŠ΅λ‹ˆλ‹€.');
1512

16-
return (
17-
<div className={cx(style.container)}>
18-
<Loader size={100} />
19-
</div>
20-
);
13+
return <LoadingPage />;
2114
}
2215

2316
const location = useLocation();
@@ -47,11 +40,7 @@ function OAuthPage() {
4740
login(code);
4841
}, []);
4942

50-
return (
51-
<div className={cx(style.container)}>
52-
<Loader size={100} />
53-
</div>
54-
);
43+
return <LoadingPage />;
5544
}
5645

5746
export default OAuthPage;

β€Žclient/src/pages/index.tsβ€Ž

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
export { default as LoadingPage } from './Loading';
12
export { default as WorkspacePage } from './Workspace';
23
export { default as LoginPage } from './Login';
34
export { default as OAuthPage } from './OAuth';

0 commit comments

Comments
Β (0)