From dd1562b2668148f12cfb98801c2f6d31a11668b9 Mon Sep 17 00:00:00 2001 From: judymoody59 Date: Thu, 5 Jun 2025 10:15:17 +0900 Subject: [PATCH] =?UTF-8?q?KW-597/feat:=20=EB=B9=84=EB=A1=9C=EA=B7=B8?= =?UTF-8?q?=EC=9D=B8=20=EC=83=81=ED=83=9C=EC=97=90=EC=84=9C=EB=8A=94=20/lo?= =?UTF-8?q?gin=EC=9C=BC=EB=A1=9C=20=EB=A6=AC=EB=94=94=EB=A0=89=EC=85=98?= =?UTF-8?q?=EB=90=98=EB=8F=84=EB=A1=9D=20PrivateRoute=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/App.tsx | 17 ++++++++++++----- src/contexts/PrivateRoute.tsx | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/src/App.tsx b/src/App.tsx index d53332e..a6a34c3 100644 --- a/src/App.tsx +++ b/src/App.tsx @@ -1,4 +1,4 @@ -import { BrowserRouter as Router, Routes, Route, useLocation } from 'react-router-dom'; +import { BrowserRouter as Router, Routes, Route, useLocation, Navigate } from 'react-router-dom'; import { useEffect } from 'react'; import LoginSwitcher from './components/switcher/LoginSwitcher'; @@ -6,6 +6,8 @@ import BuildingSelectPage from './pages/BuildingSelectPage'; import ZoneSelectPage from './pages/ZoneSelectPage'; import QRCodeScanner from './pages/QRCodeScanner'; +import PrivateRoute from './contexts/PrivateRoute'; + function GlobalPopStateHandler() { useEffect(() => { const handlePopState = () => { @@ -63,11 +65,16 @@ function App() { - } /> + {/* 로그인 안한 상태에서 접근 시 로그인 페이지로 이동 */} + } /> + } /> - } /> - } /> - } /> + + }> + } /> + } /> + } /> + ); diff --git a/src/contexts/PrivateRoute.tsx b/src/contexts/PrivateRoute.tsx index 9cfe9f0..b24944e 100644 --- a/src/contexts/PrivateRoute.tsx +++ b/src/contexts/PrivateRoute.tsx @@ -2,7 +2,7 @@ import { Navigate, Outlet } from 'react-router-dom'; const PrivateRoute = () => { const isLoggedIn = !!localStorage.getItem('accessToken'); - return isLoggedIn ? : ; + return isLoggedIn ? : ; }; export default PrivateRoute;