diff --git a/src/app/page.tsx b/src/app/page.tsx
index 4161d93..d9a9201 100644
--- a/src/app/page.tsx
+++ b/src/app/page.tsx
@@ -104,7 +104,7 @@ export default function BudgetDashboard() {
// Save data to Firestore whenever data changes
useEffect(() => {
- if (user && (accounts.length > 0 || envelopes.length > 0 || transactions.length > 0 || setupCompleted)) {
+ if (user && (((accounts || []).length > 0 || (envelopes || []).length > 0 || (transactions || []).length > 0 || setupCompleted))) {
const saveData = async () => {
try {
await DataService.saveUserData(user.uid, { accounts, envelopes, transactions, setupCompleted });
diff --git a/src/components/AccountManagement.tsx b/src/components/AccountManagement.tsx
index d5f1e74..48c3d0e 100644
--- a/src/components/AccountManagement.tsx
+++ b/src/components/AccountManagement.tsx
@@ -95,7 +95,7 @@ export default function AccountManagement({ accounts, onAccountAdd, onAccountUpd
}
};
- const totalBalance = accounts.reduce((sum, acc) => sum + acc.balance, 0);
+ const totalBalance = (accounts || []).reduce((sum, acc) => sum + acc.balance, 0);
return (
@@ -120,7 +120,7 @@ export default function AccountManagement({ accounts, onAccountAdd, onAccountUpd
Total Accounts
-
{accounts.length}
+
{(accounts || []).length}
Total Balance
@@ -128,7 +128,7 @@ export default function AccountManagement({ accounts, onAccountAdd, onAccountUpd
Active Accounts
-
{accounts.filter(acc => acc.isActive).length}
+
{(accounts || []).filter(acc => acc.isActive).length}
@@ -138,7 +138,7 @@ export default function AccountManagement({ accounts, onAccountAdd, onAccountUpd
Your Accounts
- {accounts.length === 0 ? (
+ {(accounts || []).length === 0 ? (
🏦
No accounts yet
@@ -152,7 +152,7 @@ export default function AccountManagement({ accounts, onAccountAdd, onAccountUpd
) : (
- {accounts.map((account) => (
+ {(accounts || []).map((account) => (
diff --git a/src/components/SetupWizard.tsx b/src/components/SetupWizard.tsx
index e120034..c562ffa 100644
--- a/src/components/SetupWizard.tsx
+++ b/src/components/SetupWizard.tsx
@@ -55,6 +55,10 @@ export default function SetupWizard({ onComplete, onSkip }: SetupWizardProps) {
color: 'bg-green-500',
});
+ // Standard envelopes option
+ const [includeStandardEnvelopes, setIncludeStandardEnvelopes] = useState(false);
+ const [standardEnvelopeAccountId, setStandardEnvelopeAccountId] = useState
('');
+
// Income allocation state
const [incomeAllocations, setIncomeAllocations] = useState<{ [envelopeId: string]: { type: 'percentage' | 'fixed'; value: number } }>({});
const [defaultPaycheckAmounts, setDefaultPaycheckAmounts] = useState<{ [accountId: string]: number }>({});
@@ -232,11 +236,11 @@ export default function SetupWizard({ onComplete, onSkip }: SetupWizardProps) {
{/* Existing Accounts */}
Your Accounts
- {accounts.length === 0 ? (
+ {(accounts || []).length === 0 ? (
No accounts added yet
) : (
- {accounts.map((account) => (
+ {(accounts || []).map((account) => (
@@ -275,7 +279,7 @@ export default function SetupWizard({ onComplete, onSkip }: SetupWizardProps) {
{/* Add Envelope Button */}
+ {/* Standard envelopes option */}
+
+
+
+
+
+
+
We'll create a set of common envelopes (Rent, Groceries, Utilities, Savings, Transport, Entertainment, Emergency). You can edit amounts later.
+
+
+