From fce5dcc2830faac507cf30fb096c127f71bc2502 Mon Sep 17 00:00:00 2001 From: NYD Date: Thu, 8 Jan 2026 18:55:56 +0900 Subject: [PATCH] fix_unlimit_loading --- frontend/src/contexts/AnalysisYearContext.tsx | 23 ++++++++++++++----- 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/frontend/src/contexts/AnalysisYearContext.tsx b/frontend/src/contexts/AnalysisYearContext.tsx index 10ea01d..faeaf97 100644 --- a/frontend/src/contexts/AnalysisYearContext.tsx +++ b/frontend/src/contexts/AnalysisYearContext.tsx @@ -54,10 +54,12 @@ function AnalysisYearProviderInner({ children }: { children: React.ReactNode }) if (savedYear && !isNaN(Number(savedYear))) { console.log('[AnalysisYear] Initial year from localStorage:', savedYear) const year = Number(savedYear) - setSelectedYearState(year) - // URL에 year 파라미터 추가 + // availableYears에 포함된 년도만 사용 (없으면 현재 연도 사용) + const validYear = availableYears.includes(year) ? year : currentYear + setSelectedYearState(validYear) + // URL에 year 파라미터 추가 (유효한 년도만) const params = new URLSearchParams(searchParams.toString()) - params.set('year', year.toString()) + params.set('year', validYear.toString()) router.replace(`${pathname}?${params.toString()}`) } @@ -72,11 +74,20 @@ function AnalysisYearProviderInner({ children }: { children: React.ReactNode }) const yearParam = searchParams.get('year') if (yearParam && !isNaN(Number(yearParam))) { const year = Number(yearParam) - if (availableYears.includes(year) && year !== selectedYear) { - setSelectedYearState(year) + if (availableYears.includes(year)) { + // 유효한 년도면 상태 업데이트 + if (year !== selectedYear) { + setSelectedYearState(year) + } + } else { + // 유효하지 않은 년도면 URL에서 제거하고 현재 연도로 설정 + const params = new URLSearchParams(searchParams.toString()) + params.delete('year') + router.replace(params.toString() ? `${pathname}?${params.toString()}` : pathname) + setSelectedYearState(currentYear) } } - }, [searchParams, availableYears, isInitialized, selectedYear]) + }, [searchParams, availableYears, isInitialized, selectedYear, currentYear, pathname, router]) const setSelectedYear = (year: number) => { console.log('[AnalysisYear] setSelectedYear:', year)