feat: ESLint 정리 및 전체 코드 품질 개선

- eslint.config.mjs 규칙 강화 및 정리
- 전역 unused import/변수 제거 (312개 파일)
- next.config.ts, middleware, proxy route 개선
- CopyableCell molecule 추가
- 회계/결재/HR/생산/건설/품질/영업 등 전 도메인 lint 정리
- IntegratedListTemplateV2, DataTable, MobileCard 등 공통 컴포넌트 개선
- execute-server-action 에러 핸들링 보강
This commit is contained in:
유병철
2026-03-11 10:27:10 +09:00
parent 924726cba1
commit 81affdc441
315 changed files with 1977 additions and 1344 deletions

View File

@@ -204,8 +204,7 @@ export function SaveConfirmDialog({
/**
* 취소 확인 다이얼로그 프리셋
*/
export interface CancelConfirmDialogProps
extends Omit<ConfirmDialogProps, 'title' | 'confirmText' | 'variant'> {}
export type CancelConfirmDialogProps = Omit<ConfirmDialogProps, 'title' | 'confirmText' | 'variant'>;
export function CancelConfirmDialog({
description = '작업을 취소하시겠습니까? 변경사항이 저장되지 않습니다.',

View File

@@ -113,7 +113,7 @@ const CurrencyInput = React.forwardRef<HTMLInputElement, CurrencyInputProps>(
// 숫자와 음수 기호만 허용
if (allowNegative) {
result = result.replace(/[^\d\-]/g, "");
result = result.replace(/[^\d-]/g, "");
// 음수 기호는 맨 앞에만
if (result.includes("-")) {
const isNegative = result.startsWith("-");

View File

@@ -92,7 +92,7 @@ interface TableLoadingSpinnerProps {
export const TableLoadingSpinner: React.FC<TableLoadingSpinnerProps> = ({
text = '데이터를 불러오는 중...',
rows = 5
rows: _rows = 5
}) => {
return (
<div className="flex items-center justify-center py-16">

View File

@@ -103,11 +103,11 @@ const NumberInput = React.forwardRef<HTMLInputElement, NumberInputProps>(
// 허용 문자만 남기기
if (allowDecimal && allowNegative) {
result = result.replace(/[^\d.\-]/g, "");
result = result.replace(/[^\d.-]/g, "");
} else if (allowDecimal) {
result = result.replace(/[^\d.]/g, "");
} else if (allowNegative) {
result = result.replace(/[^\d\-]/g, "");
result = result.replace(/[^\d-]/g, "");
} else {
result = result.replace(/\D/g, "");
}

View File

@@ -63,7 +63,7 @@ const QuantityInput = React.forwardRef<HTMLInputElement, QuantityInputProps>(
disabled,
onFocus,
onBlur,
// eslint-disable-next-line @typescript-eslint/no-unused-vars
defaultValue: _defaultValue, // controlled component이므로 defaultValue 무시
...props
},

View File

@@ -47,7 +47,7 @@ function TableRowSkeleton({
showCheckbox = true,
showActions = true,
}: TableRowSkeletonProps) {
const totalCols = columns + (showCheckbox ? 1 : 0) + (showActions ? 1 : 0);
const _totalCols = columns + (showCheckbox ? 1 : 0) + (showActions ? 1 : 0);
return (
<tr className="border-b">