Skip to content

Commit c6410e0

Browse files
authored
Merge pull request #89 from DMU-DebugVisual/sunwoong
대댓글 기능, 메인화면 푸터 수정
2 parents 1d968e6 + 02b8ff1 commit c6410e0

File tree

5 files changed

+468
-292
lines changed

5 files changed

+468
-292
lines changed

src/App.js

Lines changed: 8 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,8 @@
11
import { HashRouter, Routes, Route, useLocation } from "react-router-dom";
22
import { useEffect, useState } from "react";
3-
// ✅ 1. jwt-decode 라이브러리를 import 합니다.
4-
import { jwtDecode } from "jwt-decode";
53

64
import Header from "./components/header/Header";
7-
import Footer from "./components/footer/Footer";
5+
import Footer from "./components/footer/Footer"; // Footer 컴포넌트 임포트 유지
86
import Main from "./components/mainpage/Main";
97
import Login from "./components/login/Login";
108
import SignUp from "./components/signup/SignUp";
@@ -20,7 +18,6 @@ import MyProject from "./components/mypage/MyProject";
2018
import MyCommunity from "./components/mypage/MyCommunity";
2119
import ScrollToTop from "./components/common/ScrollToTop";
2220
import CommunityWrite from "./components/community/CommunityWrite";
23-
import VisualizationModal from "./components/ide/VisualizationModal";
2421
import PostDetail from "./components/community/PostDetail";
2522
import CodecastLive from "./components/codecast/codecastlive/CodecastLive";
2623

@@ -33,42 +30,19 @@ function AppContent() {
3330

3431
const isSignupPage = location.pathname === "/signup";
3532
const isIdePage = location.pathname.startsWith("/ide");
33+
const isMainPage = location.pathname === "/"; // 👈 추가: 메인 페이지 플래그
3634

37-
// ✅ 2. 토큰 만료를 확인하는 로직으로 교체된 useEffect
3835
useEffect(() => {
3936
const token = localStorage.getItem('token');
4037
const storedUsername = localStorage.getItem('username');
41-
4238
if (token && storedUsername) {
43-
try {
44-
const decodedToken = jwtDecode(token);
45-
// 토큰의 만료 시간(exp)이 현재 시간보다 이전이면 만료된 것
46-
if (decodedToken.exp * 1000 < Date.now()) {
47-
// 토큰이 만료된 경우, 로그아웃 처리
48-
localStorage.removeItem('token');
49-
localStorage.removeItem('username');
50-
setIsLoggedIn(false);
51-
setNickname('');
52-
console.log('만료된 토큰이 감지되어 자동 로그아웃되었습니다.');
53-
} else {
54-
// 토큰이 유효한 경우, 로그인 상태로 설정
55-
setIsLoggedIn(true);
56-
setNickname(storedUsername);
57-
}
58-
} catch (error) {
59-
// 토큰 형식이 잘못된 경우에도 로그아웃 처리
60-
localStorage.removeItem('token');
61-
localStorage.removeItem('username');
62-
setIsLoggedIn(false);
63-
setNickname('');
64-
console.error('잘못된 토큰 형식으로 인해 로그아웃 처리:', error);
65-
}
39+
setIsLoggedIn(true);
40+
setNickname(storedUsername);
6641
} else {
67-
// 토큰이 없는 경우, 기본적으로 로그아웃 상태
6842
setIsLoggedIn(false);
6943
setNickname('');
7044
}
71-
}, []); // 앱이 처음 로드될 때 한 번만 실행됩니다.
45+
}, []);
7246

7347
useEffect(() => {
7448
const savedTheme = localStorage.getItem("theme");
@@ -105,7 +79,7 @@ function AppContent() {
10579
<Route path="/community/post/:id" element={<PostDetail />} />
10680
<Route path="/broadcast" element={<Codecast />} />
10781
<Route path="/startbroadcast" element={<StartCodecast />} />
108-
<Route path="/broadcast/live" element={<CodecastLive isDark={isDark} />} />
82+
<Route path="/broadcast/live" element={<CodecastLive />} />
10983
<Route path="/mypage" element={<MyPageLayout nickname={nickname} />}>
11084
<Route index element={<Mypage nickname={nickname} />} />
11185
<Route path="project" element={<MyProject />} />
@@ -115,7 +89,8 @@ function AppContent() {
11589
</Route>
11690
</Routes>
11791

118-
{(!isSignupPage && !isIdePage) && <Footer />}
92+
{/* 👈 푸터는 메인 페이지, 회원가입, IDE 페이지에서는 숨깁니다. */}
93+
{(!isSignupPage && !isIdePage && !isMainPage) && <Footer />}
11994

12095
{isLoginModalOpen && (
12196
<Login

0 commit comments

Comments
 (0)