diff --git a/components/expenses/ExpenseModal.tsx b/components/expenses/ExpenseModal.tsx index aa46445..b16878a 100644 --- a/components/expenses/ExpenseModal.tsx +++ b/components/expenses/ExpenseModal.tsx @@ -175,7 +175,7 @@ export default function ExpenseModal( name='expense_budget' id='expense_budget' value={newExpenseBudget.value} - onSelect={(event) => { + onChange={(event) => { newExpenseBudget.value = event.currentTarget.value; }} placeholder='Misc' diff --git a/components/expenses/MainExpenses.tsx b/components/expenses/MainExpenses.tsx index 5b8caa9..fced55d 100644 --- a/components/expenses/MainExpenses.tsx +++ b/components/expenses/MainExpenses.tsx @@ -1,5 +1,5 @@ import { useSignal } from '@preact/signals'; -import { useEffect } from 'preact/hooks'; +import { useCallback, useEffect } from 'preact/hooks'; import { Budget, Expense, SupportedCurrencySymbol } from '/lib/types.ts'; import { @@ -615,6 +615,13 @@ export default function MainExpenses({ initialBudgets, initialExpenses, initialM }, 500); } + // Open the expense modal if the window is small + const handleWindowResize = useCallback(() => { + if (globalThis.innerWidth < 600 && !isExpenseModalOpen.value && !editingExpense.value) { + isExpenseModalOpen.value = true; + } + }, []); + useEffect(() => { return () => { if (searchTimeout.value) { @@ -623,6 +630,15 @@ export default function MainExpenses({ initialBudgets, initialExpenses, initialM }; }, []); + useEffect(() => { + handleWindowResize(); + globalThis.addEventListener('resize', handleWindowResize); + + return () => { + globalThis.removeEventListener('resize', handleWindowResize); + }; + }, [handleWindowResize]); + return ( <>