diff --git a/src/App.js b/src/App.js index 363ce13..b0c37ad 100644 --- a/src/App.js +++ b/src/App.js @@ -1,5 +1,5 @@ import { Route, BrowserRouter, Routes } from "react-router-dom"; -import Main from "./pages/Mainpage"; +import Main from "./pages/project/List"; function App() { return ( diff --git a/src/components/Header.jsx b/src/components/Header.jsx index 4e28e14..8a97c66 100644 --- a/src/components/Header.jsx +++ b/src/components/Header.jsx @@ -2,11 +2,20 @@ import LogoImg from "../imgs/logo.svg"; import SearchImg from "../imgs/search.svg"; import ProfileImg from "../imgs/myprofile.svg"; import "../styles/header.css"; -import { useState } from "react"; +import { useEffect, useState } from "react"; +import { useNavigate } from "react-router-dom"; +import { useLocation } from "react-router-dom"; + +function useQuery() { + return new URLSearchParams(useLocation().search); +} // mode == 0 : 메인 페이지, mode == 1 : 전체 페이지, mode == 2 : 프로젝트 상세 페이지 export default function Header({ mode }) { const [selectedCategory, setSelectedCategory] = useState("소설"); + const [onLogin, setOnLogin] = useState(); + const query = useQuery(); + const navigate = useNavigate(); const categories = { 소설: ["전체", "공포", "로맨스", "미스터리/추리", "역사", "판타지", "SF"], @@ -21,6 +30,23 @@ export default function Header({ mode }) { setSelectedCategory(category); }; + useEffect(() => { + const token = query.get("token"); + + if (token) { + localStorage.setItem("token", token); + setOnLogin(true); + navigate("/", { replace: true }); + } + const storedToken = localStorage.getItem("token"); + + if (storedToken == null) { + setOnLogin(false); + navigate("/", { replace: true }); + return; + } + }, []); + return (