refactor(WEB): 프론트엔드 대규모 코드 정리 및 리팩토링

- 미사용 코드 삭제: ThemeContext, itemStore, utils/date.ts, utils/formatAmount.ts
- 유틸리티 이동: date, formatAmount → src/lib/utils/ (중앙 집중화)
- 다수 page.tsx 클라이언트 컴포넌트 패턴 통일
- DateRangeSelector 리팩토링 및 date-range-picker UI 컴포넌트 추가
- ThemeSelect/themeStore Zustand 직접 연동으로 전환
- 건설/회계/영업/품목/출하 등 전반적 컴포넌트 개선
- UniversalListPage, IntegratedListTemplateV2 타입 확장
- 프론트엔드 종합 리뷰 문서 및 개선 체크리스트 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
유병철
2026-02-19 16:30:07 +09:00
parent b8dcb69e47
commit a2c3e4c41e
136 changed files with 1987 additions and 896 deletions

View File

@@ -45,6 +45,7 @@ import { ScheduleCalendar } from '@/components/common/ScheduleCalendar/ScheduleC
import type { ScheduleEvent, CalendarView } from '@/components/common/ScheduleCalendar/types';
import { getInspections, getInspectionStats, getInspectionCalendar } from './actions';
import { statusColorMap } from './mockData';
import { parseISO } from 'date-fns';
import { isNextRedirectError } from '@/lib/utils/redirect-error';
import type { ProductInspection, InspectionStats, InspectionStatus } from './types';
@@ -74,6 +75,16 @@ export function InspectionList() {
const [calendarStatusFilter, setCalendarStatusFilter] = useState<string>('전체');
const [calendarInspectorFilter, setCalendarInspectorFilter] = useState<string>('전체');
// startDate 변경 시 캘린더 월 자동 이동
useEffect(() => {
if (startDate) {
const parsed = parseISO(startDate);
if (!isNaN(parsed.getTime())) {
setCalendarDate(parsed);
}
}
}, [startDate]);
// 캘린더 데이터 로드
const loadCalendarData = useCallback(async () => {
try {