Skip to content

Commit 0fc2cb1

Browse files
committed
feat: 네비게이션 bar 수정
1 parent 73e85bd commit 0fc2cb1

File tree

3 files changed

+54
-39
lines changed

3 files changed

+54
-39
lines changed

src/components/NavBar.jsx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,11 +32,11 @@ const NavBar = () => {
3232
{username ? (
3333
<div style={{display: 'flex', alignItems: 'center'}}>
3434
<span className={styles.username}>{username}</span>
35-
&nbsp;
35+
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
3636
<LogoutButton onClick={handleLogout}/>
3737
</div>
3838
) : (
39-
<GoogleButton onClick={login} name="Google"/>
39+
<GoogleButton onClick={() => login()} name="Google"/>
4040
)}
4141
</li>
4242
</ul>

src/hooks/useAuth.js

Lines changed: 44 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,40 +1,48 @@
1-
import { useState } from 'react';
1+
import {useState, useEffect} from 'react';
22
import axios from 'axios';
33

44
export const useAuth = () => {
5-
const [username, setUsername] = useState(localStorage.getItem('username'));
6-
7-
const handleLogin = (newUsername) => {
8-
setUsername(newUsername);
9-
};
10-
11-
const handleLogout = () => {
12-
localStorage.removeItem('accessToken');
13-
localStorage.removeItem('refreshToken');
14-
localStorage.removeItem('username');
15-
localStorage.removeItem('session');
16-
setUsername(null);
17-
};
18-
19-
const handleCallback = async (code) => {
20-
try {
21-
const backendResponse = await axios.get(`${import.meta.env.VITE_DEFAULT_API_URI}/login?code=${code}`);
22-
const { accessToken, refreshToken, username, session } = backendResponse.data;
23-
24-
localStorage.setItem('accessToken', accessToken);
25-
localStorage.setItem('refreshToken', refreshToken);
26-
localStorage.setItem('session', session);
27-
28-
setUsername(username);
29-
} catch (error) {
30-
console.error('Error sending code to backend:', error);
31-
}
32-
};
33-
34-
return {
35-
username,
36-
handleLogin,
37-
handleLogout,
38-
handleCallback,
39-
};
5+
const [username, setUsername] = useState(localStorage.getItem('username'));
6+
7+
useEffect(() => {
8+
const storedUsername = localStorage.getItem('username');
9+
if (storedUsername) {
10+
setUsername(storedUsername);
11+
}
12+
}, []);
13+
14+
const handleLogin = (newUsername) => {
15+
setUsername(newUsername);
16+
};
17+
18+
const handleLogout = () => {
19+
localStorage.removeItem('accessToken');
20+
localStorage.removeItem('refreshToken');
21+
localStorage.removeItem('username');
22+
localStorage.removeItem('session');
23+
setUsername(null);
24+
};
25+
26+
const handleCallback = async (code) => {
27+
try {
28+
const backendResponse = await axios.get(`${import.meta.env.VITE_DEFAULT_API_URI}/login?code=${code}`);
29+
const {accessToken, refreshToken, username, session} = backendResponse.data;
30+
31+
localStorage.setItem('accessToken', accessToken);
32+
localStorage.setItem('refreshToken', refreshToken);
33+
localStorage.setItem('username', username);
34+
localStorage.setItem('session', session);
35+
36+
setUsername(username);
37+
} catch (error) {
38+
console.error('Error sending code to backend:', error);
39+
}
40+
};
41+
42+
return {
43+
username,
44+
handleLogin,
45+
handleLogout,
46+
handleCallback,
47+
};
4048
};

src/styles/NavBar.module.css

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,18 @@
11
.username {
22
color: rgba(0, 0, 0, 0.54); /* text-black-54 */
33
font-weight: 600; /* font-semibold */
4-
font-size: 0.875rem; /* text-sm */
4+
font-size: 1.3rem; /* text-sm */
55
}
66

77
.logo {
88
width: 100%;
99
height: auto;
1010
max-width: 200px;
1111
}
12+
13+
ul {
14+
display: flex;
15+
align-items: center;
16+
height: 100%;
17+
}
18+

0 commit comments

Comments
 (0)