Files
zellyy-finance/src/components/TransactionEditDialog.tsx
gpt-engineer-app[bot] c473abda72 Refactor TransactionEditDialog component
The TransactionEditDialog component was refactored into smaller, more manageable components to improve code organization and maintainability. The functionality remains the same.
2025-03-21 10:05:01 +00:00

68 lines
1.8 KiB
TypeScript

import React from 'react';
import { Transaction } from '@/components/TransactionCard';
import {
Dialog,
DialogContent,
DialogHeader,
DialogTitle,
DialogDescription
} from '@/components/ui/dialog';
import { useIsMobile } from '@/hooks/use-mobile';
import { useTransactionEdit } from './transaction/useTransactionEdit';
import TransactionEditForm from './transaction/TransactionEditForm';
interface TransactionEditDialogProps {
transaction: Transaction;
open: boolean;
onOpenChange: (open: boolean) => void;
onSave?: (updatedTransaction: Transaction) => void;
onDelete?: (id: string) => Promise<boolean> | boolean;
}
/**
* 트랜잭션 편집 다이얼로그 - 리팩토링 후 간소화된 버전
*/
const TransactionEditDialog: React.FC<TransactionEditDialogProps> = ({
transaction,
open,
onOpenChange,
onSave,
onDelete
}) => {
const isMobile = useIsMobile();
const { form, isSubmitting, handleSubmit, handleDelete } = useTransactionEdit(
transaction,
open,
onOpenChange,
onSave,
onDelete
);
return (
<Dialog open={open} onOpenChange={(newOpen) => {
// 제출 중이면 닫기 방지
if (isSubmitting && !newOpen) return;
onOpenChange(newOpen);
}}>
<DialogContent className={`sm:max-w-md mx-auto bg-white ${isMobile ? 'rounded-xl overflow-hidden' : ''}`}>
<DialogHeader>
<DialogTitle> </DialogTitle>
<DialogDescription>
.
</DialogDescription>
</DialogHeader>
<TransactionEditForm
form={form}
onSubmit={handleSubmit}
onDelete={handleDelete}
isSubmitting={isSubmitting}
/>
</DialogContent>
</Dialog>
);
};
export default TransactionEditDialog;