- Added ResponsiveDialog component for handling responsive dialogs in the UI. - Created ExpensesProvider to manage state and API interactions for expenses. - Developed ExpensesTabContent to display expenses with filtering options and dialogs for new and pay expense actions. - Implemented ExpensesTable for rendering expense data in a tabular format with actions. - Added dialogs for creating new expenses and paying existing ones with form validation. - Introduced PeriodicExpenseForm for managing periodic expenses with month selection. - Created PeriodicExpensesTabContent to manage and display periodic expenses with create/edit functionality. - Added GenerateCurrentMonthDialog for confirming monthly expense generation. - Implemented PeriodicExpensesTable for displaying periodic expenses with edit and delete actions.
47 lines
1.3 KiB
TypeScript
47 lines
1.3 KiB
TypeScript
import {
|
|
ResponsiveDialog,
|
|
ResponsiveDialogContent,
|
|
ResponsiveDialogHeader,
|
|
ResponsiveDialogTitle,
|
|
ResponsiveDialogDescription,
|
|
ResponsiveDialogFooter,
|
|
} from "@/components/ui/responsive-dialog";
|
|
import { Button } from "@/components/ui/button";
|
|
|
|
interface GenerateCurrentMonthDialogProps {
|
|
open: boolean;
|
|
onOpenChange: (open: boolean) => void;
|
|
description: string;
|
|
onConfirm: () => void;
|
|
onSkip: () => void;
|
|
}
|
|
|
|
export function GenerateCurrentMonthDialog({
|
|
open,
|
|
onOpenChange,
|
|
description,
|
|
onConfirm,
|
|
onSkip,
|
|
}: GenerateCurrentMonthDialogProps) {
|
|
return (
|
|
<ResponsiveDialog open={open} onOpenChange={onOpenChange}>
|
|
<ResponsiveDialogContent>
|
|
<ResponsiveDialogHeader>
|
|
<ResponsiveDialogTitle>¿Generar gasto para este mes?</ResponsiveDialogTitle>
|
|
<ResponsiveDialogDescription>
|
|
<strong>{description}</strong> aplica al mes actual. ¿Querés generar el gasto ahora?
|
|
</ResponsiveDialogDescription>
|
|
</ResponsiveDialogHeader>
|
|
<ResponsiveDialogFooter>
|
|
<Button variant="outline" onClick={onSkip}>
|
|
No, gracias
|
|
</Button>
|
|
<Button onClick={onConfirm}>
|
|
Sí, generar
|
|
</Button>
|
|
</ResponsiveDialogFooter>
|
|
</ResponsiveDialogContent>
|
|
</ResponsiveDialog>
|
|
);
|
|
}
|