+
Import Bank Transactions
-
-
-
-
-
+ {/* Account selector */}
+
+
+
+
-
-
-
-
-
Supported formats:
-
- - CSV: Date, Amount, Description columns
- - OFX/QFX: Standard bank export formats
- - QBO: QuickBooks Online format
- - PDF: Coming soon
-
-
+ )}
);
-}
\ No newline at end of file
+}
diff --git a/src/components/ManualEntry.tsx b/src/components/ManualEntry.tsx
index e4cb52d..1715cec 100644
--- a/src/components/ManualEntry.tsx
+++ b/src/components/ManualEntry.tsx
@@ -22,6 +22,8 @@ interface ManualEntryProps {
date: Date;
envelopeId?: string;
accountId: string;
+ isRecurring?: boolean;
+ recurringFrequency?: 'weekly' | 'biweekly' | 'monthly' | 'yearly';
}) => void;
envelopes: Envelope[];
accounts: { id: string; name: string }[];
@@ -35,6 +37,8 @@ export default function ManualEntry({ onTransactionAdded, envelopes, accounts, t
const [selectedEnvelope, setSelectedEnvelope] = useState('');
const [selectedAccount, setSelectedAccount] = useState(accounts?.[0]?.id || '');
const [isExpense, setIsExpense] = useState(true);
+ const [isRecurring, setIsRecurring] = useState(false);
+ const [recurringFrequency, setRecurringFrequency] = useState<'weekly' | 'biweekly' | 'monthly' | 'yearly'>('monthly');
// Update selected account when accounts change
useEffect(() => {
@@ -88,6 +92,8 @@ export default function ManualEntry({ onTransactionAdded, envelopes, accounts, t
date: new Date(date),
envelopeId: selectedEnvelope || undefined,
accountId: selectedAccount,
+ isRecurring: isRecurring || undefined,
+ recurringFrequency: isRecurring ? recurringFrequency : undefined,
});
// Reset form
@@ -96,6 +102,7 @@ export default function ManualEntry({ onTransactionAdded, envelopes, accounts, t
setDate(new Date().toISOString().split('T')[0]);
setSelectedEnvelope('');
setSelectedAccount(accounts?.[0]?.id || '');
+ setIsRecurring(false);
};
if (!accounts || accounts.length === 0) {
@@ -237,6 +244,23 @@ export default function ManualEntry({ onTransactionAdded, envelopes, accounts, t