diff --git a/src/components/TransactionEditDialog.tsx b/src/components/TransactionEditDialog.tsx index 00add25..2d613c7 100644 --- a/src/components/TransactionEditDialog.tsx +++ b/src/components/TransactionEditDialog.tsx @@ -23,6 +23,7 @@ import TransactionFormFields, { } from './transaction/TransactionFormFields'; import TransactionDeleteAlert from './transaction/TransactionDeleteAlert'; import { useIsMobile } from '@/hooks/use-mobile'; +import { EXPENSE_CATEGORIES } from '@/constants/categoryIcons'; interface TransactionEditDialogProps { transaction: Transaction; @@ -49,13 +50,22 @@ const TransactionEditDialog: React.FC = ({ // 작업 중첩 방지를 위한 참조 const isProcessingRef = useRef(false); + // 카테고리 매핑 함수 - 이전 카테고리명을 새 카테고리명으로 변환 + const mapCategoryToNew = (oldCategory: string): "음식" | "쇼핑" | "교통비" => { + if (oldCategory === '식비') return '음식'; + if (oldCategory === '생활비') return '쇼핑'; + if (EXPENSE_CATEGORIES.includes(oldCategory as any)) return oldCategory as "음식" | "쇼핑" | "교통비"; + // 기본값은 '쇼핑'으로 설정 + return '쇼핑'; + }; + // 폼 설정 const form = useForm({ resolver: zodResolver(transactionFormSchema), defaultValues: { title: transaction.title, amount: formatWithCommas(transaction.amount.toString()), - category: transaction.category as '식비' | '생활비' | '교통비', + category: mapCategoryToNew(transaction.category), }, }); @@ -65,7 +75,7 @@ const TransactionEditDialog: React.FC = ({ form.reset({ title: transaction.title, amount: formatWithCommas(transaction.amount.toString()), - category: transaction.category as '식비' | '생활비' | '교통비', + category: mapCategoryToNew(transaction.category), }); } }, [open, transaction, form]);