diff --git a/frontend/src/contexts/AnalysisYearContext.tsx b/frontend/src/contexts/AnalysisYearContext.tsx index faeaf97..053b3a5 100644 --- a/frontend/src/contexts/AnalysisYearContext.tsx +++ b/frontend/src/contexts/AnalysisYearContext.tsx @@ -45,8 +45,17 @@ function AnalysisYearProviderInner({ children }: { children: React.ReactNode }) const yearFromUrl = searchParams.get('year') if (yearFromUrl && !isNaN(Number(yearFromUrl))) { console.log('[AnalysisYear] Initial year from URL:', yearFromUrl) - setSelectedYearState(Number(yearFromUrl)) + const year = Number(yearFromUrl) + // availableYears에 포함된 년도만 사용 + const validYear = availableYears.includes(year) ? year : currentYear + setSelectedYearState(validYear) setIsInitialized(true) + // URL에 유효하지 않은 연도가 있으면 제거 + if (!availableYears.includes(year) && pathname !== '/') { + const params = new URLSearchParams(searchParams.toString()) + params.delete('year') + router.replace(params.toString() ? `${pathname}?${params.toString()}` : pathname) + } return } @@ -57,10 +66,12 @@ function AnalysisYearProviderInner({ children }: { children: React.ReactNode }) // availableYears에 포함된 년도만 사용 (없으면 현재 연도 사용) const validYear = availableYears.includes(year) ? year : currentYear setSelectedYearState(validYear) - // URL에 year 파라미터 추가 (유효한 년도만) - const params = new URLSearchParams(searchParams.toString()) - params.set('year', validYear.toString()) - router.replace(`${pathname}?${params.toString()}`) + // URL에 year 파라미터 추가 (유효한 년도만, 루트 페이지 제외) + if (pathname !== '/') { + const params = new URLSearchParams(searchParams.toString()) + params.set('year', validYear.toString()) + router.replace(`${pathname}?${params.toString()}`) + } } setIsInitialized(true) @@ -69,7 +80,7 @@ function AnalysisYearProviderInner({ children }: { children: React.ReactNode }) // URL 파라미터와 동기화 (초기화 이후에만 실행) useEffect(() => { - if (!isInitialized) return + if (!isInitialized || pathname === '/') return // 루트 페이지에서는 실행 안 함 const yearParam = searchParams.get('year') if (yearParam && !isNaN(Number(yearParam))) {