Skip to content

Commit 21a9200

Browse files
committed
refactor: 코드 정리
- 불필요한 로직 제거 - 올바르지 못한 url 수정
1 parent 5a8e12a commit 21a9200

File tree

2 files changed

+28
-25
lines changed

2 files changed

+28
-25
lines changed

src/pages/MyPage.jsx

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,26 +5,29 @@ import {useNavigate} from 'react-router-dom';
55
import styles from '../styles/MyPage.module.css';
66

77
function HomePage() {
8-
const [user, setUser] = useState(null);
9-
const [character, setCharacter] = useState(null);
10-
const [name, setName] = useState('');
11-
const {username} = useAuth();
12-
const navigate = useNavigate();
8+
const [user, setUser] = useState(null); // 사용자 정보
9+
const [character, setCharacter] = useState(null);// 캐릭터 정보
10+
const [name, setName] = useState(''); // 캐릭터 이름
11+
const {username} = useAuth(); // 사용자 이름
12+
const navigate = useNavigate(); // 페이지 이동
1313

14+
// 사용자의 이름이 없으면 홈으로 이동
1415
useEffect(() => {
1516
if (!username) {
1617
navigate('/');
1718
return;
1819
}
1920

21+
// 사용자 정보를 호출
2022
const fetchUserData = async () => {
2123
try {
22-
const token = localStorage.getItem('accessToken');
24+
const token = localStorage.getItem('accessToken'); // 토큰을 로컬 스토리지에서 가져옴
25+
// 사용자 정보를 가져옴
2326
const response = await axios.get(`${import.meta.env.VITE_DEFAULT_API_URI}/v1/user/profile`, {
2427
headers: {Authorization: `Bearer ${token}`},
2528
});
26-
setUser(response.data.result);
27-
setCharacter(response.data.result.info);
29+
setUser(response.data.result); // 사용자 정보를 상태에 저장
30+
setCharacter(response.data.result.info); // 캐릭터 정보를 상태에 저장
2831
} catch (error) {
2932
console.error('Error fetching user data:', error);
3033
}
@@ -33,19 +36,22 @@ function HomePage() {
3336
fetchUserData();
3437
}, [username, navigate]);
3538

39+
// 캐릭터 정보 저장
3640
const handleSubmit = async (e) => {
3741
e.preventDefault();
3842
try {
39-
const token = localStorage.getItem('accessToken');
43+
const token = localStorage.getItem('accessToken'); // 토큰을 로컬 스토리지에서 가져옴
44+
// 캐릭터 정보 저장
4045
await axios.post(
4146
`${import.meta.env.VITE_DEFAULT_API_URI}/v1/user/save-character`,
4247
{name},
4348
{headers: {Authorization: `Bearer ${token}`}}
4449
);
50+
// 사용자 정보를 다시 불러옴
4551
const response = await axios.get(`${import.meta.env.VITE_DEFAULT_API_URI}/v1/user/profile`, {
4652
headers: {Authorization: `Bearer ${token}`},
4753
});
48-
setCharacter(response.data.result.info);
54+
window.location.reload(); // 페이지 새로고침
4955
} catch (error) {
5056
console.error('Error saving character:', error);
5157
}

src/pages/RankingPage.jsx

Lines changed: 12 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,24 @@ import React, { useEffect, useState } from 'react';
22
import { useParams } from 'react-router-dom';
33

44
const RankingPage = () => {
5-
const { rankingName } = useParams();
6-
const [rankingData, setRankingData] = useState([]);
7-
const [isLoading, setIsLoading] = useState(true); // 로딩 상태 추가
8-
const [error, setError] = useState(null); // 에러 상태 추가
5+
const { rankingName } = useParams(); // URL 파라미터 값 가져오기
6+
const [rankingData, setRankingData] = useState([]); // 랭킹 데이터
7+
const [isLoading, setIsLoading] = useState(true); // 로딩 상태
8+
const [error, setError] = useState(null); // 에러 상태
99

10+
// 랭킹 데이터 가져오기
1011
useEffect(() => {
1112
const fetchRankingData = async () => {
12-
setIsLoading(true);
13-
setError(null);
13+
setIsLoading(true); // 로딩 시작
14+
setError(null); // 에러 초기화
1415
try {
15-
console.log(rankingName);
16+
// 랭킹 데이터 가져오기
1617
const response = await fetch(`${import.meta.env.VITE_DEFAULT_API_URI}/v1/character/ranking/${rankingName}`);
17-
if (!response.ok) {
18-
throw new Error(`HTTP error! Status: ${response.status}`);
19-
}
18+
19+
// 응답이 성공적이면 데이터를 상태에 저장
2020
const data = await response.json();
2121
setRankingData(data.result);
2222
} catch (error) {
23-
console.error('Error fetching ranking data:', error);
2423
setError('데이터를 가져오는 데 실패했습니다.'); // 에러 메시지 설정
2524
} finally {
2625
setIsLoading(false); // 로딩 종료
@@ -30,13 +29,11 @@ const RankingPage = () => {
3029
fetchRankingData();
3130
}, [rankingName]);
3231

33-
const sortedRankingData = rankingData.sort((a, b) => a.ranking - b.ranking);
34-
3532
return (
3633
<div>
3734
{isLoading && <p>로딩 중입니다...</p>} {/* 로딩 상태 표시 */}
3835
{error && <p style={{ color: 'red' }}>{error}</p>} {/* 에러 메시지 표시 */}
39-
{!isLoading && !error && sortedRankingData.length > 0 && (
36+
{!isLoading && !error && rankingData.length > 0 && (
4037
<table style={{ width: '100%' }}>
4138
<thead>
4239
<tr>
@@ -50,7 +47,7 @@ const RankingPage = () => {
5047
</tr>
5148
</thead>
5249
<tbody>
53-
{sortedRankingData.map((item, index) => (
50+
{rankingData.map((item, index) => (
5451
<tr key={index} onClick={() => window.location.href = `http://localhost:3000/character/${item.info.name}`}>
5552
<td>{item.ranking}</td>
5653
<td><img src={item.info.characterImage} alt={`${item.info.name} 이미지`}/></td>

0 commit comments

Comments
 (0)