refactor(WEB): 공통 훅(useDeleteDialog, useStatsLoader) 및 CRUD 서비스 추출

- useDeleteDialog 훅 추출로 삭제 다이얼로그 로직 공통화
- useStatsLoader 훅 추출로 통계 로딩 패턴 공통화
- create-crud-service 유틸 추가
- 차량관리/견적/출고/검사 등 리스트 컴포넌트 간소화
- RankManagement actions 정리
- 프로덕션 로거 불필요 출력 제거

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
유병철
2026-02-09 20:42:05 +09:00
parent 3ea6a57a10
commit 4d79b178e3
22 changed files with 588 additions and 619 deletions

View File

@@ -1,6 +1,6 @@
'use client';
import { ReactNode, ComponentType } from 'react';
import { ReactNode, ComponentType, memo } from 'react';
import { Card, CardContent } from '@/components/ui/card';
import { Badge } from '@/components/ui/badge';
import { Button } from '@/components/ui/button';
@@ -22,7 +22,7 @@ export interface InfoFieldProps {
className?: string;
}
export function InfoField({
export const InfoField = memo(function InfoField({
label,
value,
valueClassName = '',
@@ -34,7 +34,7 @@ export function InfoField({
<div className={cn('text-sm font-medium', valueClassName)}>{value}</div>
</div>
);
}
});
/**
* 통합 MobileCard Props