From d8acce417d40ac44853f62cc89bbe13836954c5b Mon Sep 17 00:00:00 2001 From: parknari02 Date: Wed, 28 Jan 2026 19:40:05 +0900 Subject: [PATCH 1/5] =?UTF-8?q?feat:=20(SRLT-135-=EC=97=90=EB=9F=AC-?= =?UTF-8?q?=EC=88=98=EC=A0=95)=20gnb=20=EB=B9=84=ED=9A=8C=EC=9B=90=20?= =?UTF-8?q?=EC=A0=91=EA=B7=BC=20=EC=A0=9C=ED=95=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/_components/common/Header.tsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/app/_components/common/Header.tsx b/src/app/_components/common/Header.tsx index fd2e35f..6f708f4 100644 --- a/src/app/_components/common/Header.tsx +++ b/src/app/_components/common/Header.tsx @@ -134,12 +134,24 @@ const Header = () => { href="/business" className={dropdownItem} role="menuitem" + onClick={(e) => { + if (!isAuthenticated) { + e.preventDefault(); + setOpenLogin(true); + } + }} > 작성하기 + setOpenLogin(false)} /> ); }; From cefae1391e73cc0272c748cfc6563ef087a325f0 Mon Sep 17 00:00:00 2001 From: parknari02 Date: Wed, 11 Feb 2026 18:41:04 +0900 Subject: [PATCH 5/5] =?UTF-8?q?fix:=20(SRLT-135)=20=ED=86=A0=ED=81=B0=20?= =?UTF-8?q?=EB=A6=AC=ED=94=84=EB=A0=88=EC=89=AC=20=EB=A1=9C=EC=A7=81=20?= =?UTF-8?q?=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/_components/common/Header.tsx | 2 -- src/app/expert/detail/components/ExpertDetailSidebar.tsx | 8 ++++---- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/app/_components/common/Header.tsx b/src/app/_components/common/Header.tsx index 6f708f4..d9b61c6 100644 --- a/src/app/_components/common/Header.tsx +++ b/src/app/_components/common/Header.tsx @@ -80,9 +80,7 @@ const Header = () => { const handleLogout = () => { logout(); - clearUser(); router.push('/'); - setIsProfileOpen(false); }; diff --git a/src/app/expert/detail/components/ExpertDetailSidebar.tsx b/src/app/expert/detail/components/ExpertDetailSidebar.tsx index 9415d5c..af54d69 100644 --- a/src/app/expert/detail/components/ExpertDetailSidebar.tsx +++ b/src/app/expert/detail/components/ExpertDetailSidebar.tsx @@ -6,6 +6,7 @@ import { useExpertStore } from '@/store/expert.store'; import { useBusinessStore } from '@/store/business.store'; import { useEvaluationStore } from '@/store/report.store'; import { useUserStore } from '@/store/user.store'; +import { useAuthStore } from '@/store/auth.store'; import { useExpertReportDetail } from '@/hooks/queries/useExpert'; import GrayPlus from '@/assets/icons/gray_plus.svg'; import GrayCheck from '@/assets/icons/gray_check.svg'; @@ -25,9 +26,8 @@ const ExpertDetailSidebar = ({ expert }: ExpertDetailSidebarProps) => { const hasExpertUnlocked = useEvaluationStore((s) => s.hasExpertUnlocked); const user = useUserStore((s) => s.user); const [openLogin, setOpenLogin] = useState(false); - const hasAccessToken = - typeof window !== 'undefined' && !!localStorage.getItem('accessToken'); - const isMember = hasAccessToken && !!user; + const isAuthenticated = useAuthStore((s) => s.isAuthenticated); + const isMember = isAuthenticated && !!user; const { data: reportDetails = [], isLoading: isLoadingReports } = useExpertReportDetail(expert.id, { @@ -67,7 +67,7 @@ const ExpertDetailSidebar = ({ expert }: ExpertDetailSidebarProps) => { : '전문가 연결'; const requireAuth = () => { - if (hasAccessToken) return true; + if (isAuthenticated) return true; setOpenLogin(true); return false; };