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

@@ -58,7 +58,7 @@ import { FormSection } from "@/components/organisms/FormSection";
import { QuotationSelectDialog } from "./QuotationSelectDialog";
import { type QuotationForSelect, type QuotationItem } from "./actions";
import { ItemAddDialog, OrderItem } from "./ItemAddDialog";
import { formatAmount } from "@/utils/formatAmount";
import { formatAmount } from "@/lib/utils/amount";
import { cn } from "@/lib/utils";
import { useDevFill } from "@/components/dev";
import { generateOrderData } from "@/components/dev/generators/orderData";

View File

@@ -39,7 +39,7 @@ import { toast } from "sonner";
import { IntegratedDetailTemplate } from "@/components/templates/IntegratedDetailTemplate";
import { orderSalesConfig } from "./orderSalesConfig";
import { BadgeSm } from "@/components/atoms/BadgeSm";
import { formatAmount } from "@/utils/formatAmount";
import { formatAmount } from "@/lib/utils/amount";
import {
OrderItem,
getOrderById,

View File

@@ -38,7 +38,7 @@ import { toast } from "sonner";
import { IntegratedDetailTemplate } from "@/components/templates/IntegratedDetailTemplate";
import { orderSalesConfig } from "./orderSalesConfig";
import { BadgeSm } from "@/components/atoms/BadgeSm";
import { formatAmount } from "@/utils/formatAmount";
import { formatAmount } from "@/lib/utils/amount";
import {
Dialog,
DialogContent,

View File

@@ -10,7 +10,7 @@
import { useCallback } from 'react';
import { FileText, Check } from 'lucide-react';
import { Badge } from '@/components/ui/badge';
import { formatAmount } from '@/utils/formatAmount';
import { formatAmount } from '@/lib/utils/amount';
import { cn } from '@/lib/utils';
import { SearchableSelectionModal } from '@/components/organisms/SearchableSelectionModal';
import { getQuotesForSelect, type QuotationForSelect } from './actions';

View File

@@ -7,7 +7,7 @@
* - DocumentHeader: simple 레이아웃 (결재란 없음)
*/
import { formatAmount } from "@/utils/formatAmount";
import { formatAmount } from "@/lib/utils/amount";
import { OrderItem } from "../actions";
import { DocumentHeader } from "@/components/document-system";

View File

@@ -5,7 +5,7 @@
* - 스크린샷 형식 + 지출결의서 디자인 스타일
*/
import { getTodayString } from "@/utils/date";
import { getTodayString } from "@/lib/utils/date";
import { OrderItem } from "../actions";
/**

View File

@@ -8,7 +8,7 @@
*/
import { useState } from "react";
import { getTodayString } from "@/utils/date";
import { getTodayString } from "@/lib/utils/date";
import { OrderItem } from "../actions";
import { ProductInfo } from "./OrderDocumentModal";
import { ConstructionApprovalTable } from "@/components/document-system";

View File

@@ -7,7 +7,7 @@
* - DocumentHeader: simple 레이아웃 (결재란 없음)
*/
import { formatAmount } from "@/utils/formatAmount";
import { formatAmount } from "@/lib/utils/amount";
import { OrderItem } from "../actions";
import { DocumentHeader } from "@/components/document-system";