11import React , { useState } from "react" ;
2- import { NavLink , Link , useNavigate } from "react-router-dom" ;
3- import { FaMoon , FaSun , FaUserCircle } from "react-icons/fa" ; // ✅ FaUserCircle 가져옴
2+ import { NavLink , Link , useNavigate , useLocation } from "react-router-dom" ;
3+ import { FaMoon , FaSun , FaUserCircle } from "react-icons/fa" ;
44import "./Header.css" ;
55
66const Header = ( { isDark, setIsDark, isLoggedIn, nickname } ) => {
77 const [ isMenuOpen , setIsMenuOpen ] = useState ( false ) ;
88 const navigate = useNavigate ( ) ;
9+ const location = useLocation ( ) ; // ✅ 현재 경로 확인
910
1011 const handleLogout = ( ) => {
1112 localStorage . clear ( ) ;
12- navigate ( "/" ) ;
13- window . location . reload ( ) ;
13+
14+ if ( location . pathname . startsWith ( "/mypage" ) ) {
15+ navigate ( "/" ) ; // ✅ 마이페이지일 때만 홈으로 이동
16+ } else {
17+ navigate ( location . pathname ) ; // 그대로 현재 페이지 유지
18+ }
19+
20+ window . location . reload ( ) ; // 상태 강제 반영
1421 } ;
1522
23+
1624 const toggleMenu = ( ) => {
1725 setIsMenuOpen ( ! isMenuOpen ) ;
1826 } ;
@@ -47,10 +55,7 @@ const Header = ({ isDark, setIsDark, isLoggedIn, nickname }) => {
4755 { isLoggedIn ? (
4856 < div className = "user-menu-container" >
4957 < span className = "user-nickname" onClick = { toggleMenu } >
50- < FaUserCircle
51- size = { 24 }
52- className = { "user-icon" }
53- />
58+ < FaUserCircle size = { 24 } className = "user-icon" />
5459 { nickname } 님 ▾
5560 </ span >
5661 { isMenuOpen && (
@@ -62,8 +67,16 @@ const Header = ({ isDark, setIsDark, isLoggedIn, nickname }) => {
6267 </ div >
6368 ) : (
6469 < >
65- < Link to = "/login" className = "btn btn-outline" > 로그인</ Link >
66- < Link to = "/signup" className = "btn btn-filled" > 회원가입</ Link >
70+ < Link
71+ to = "/login"
72+ state = { { from : location . pathname } } // ✅ 현재 경로 전달
73+ className = "btn btn-outline"
74+ >
75+ 로그인
76+ </ Link >
77+ < Link to = "/signup" className = "btn btn-filled" >
78+ 회원가입
79+ </ Link >
6780 </ >
6881 ) }
6982 </ div >
0 commit comments