import { useSignal } from '@preact/signals'; import { useEffect } from 'preact/hooks'; import { Budget } from '/lib/types.ts'; interface BudgetModalProps { isOpen: boolean; budget: Budget | null; onClickSave: (newBudgetName: string, newBudgetMonth: string, newBudgetValue: number) => Promise; onClickDelete: () => Promise; onClose: () => void; } export default function BudgetModal( { isOpen, budget, onClickSave, onClickDelete, onClose }: BudgetModalProps, ) { const newBudgetName = useSignal(budget?.name ?? ''); const newBudgetMonth = useSignal(budget?.month ?? new Date().toISOString().substring(0, 10)); const newBudgetValue = useSignal(budget?.value ?? 100); useEffect(() => { if (budget) { newBudgetName.value = budget.name; newBudgetMonth.value = `${budget.month}-15`; newBudgetValue.value = budget.value; } else { newBudgetName.value = ''; newBudgetMonth.value = new Date().toISOString().substring(0, 10); newBudgetValue.value = 100; } }, [budget]); return ( <>

{budget ? 'Edit Budget' : 'Create New Budget'}

{ newBudgetName.value = event.currentTarget.value; }} placeholder='Amazing' />
{ newBudgetMonth.value = event.currentTarget.value; }} placeholder='2025-01-01' />
{ newBudgetValue.value = Number(event.currentTarget.value); }} placeholder='100' />
); }