Skip to content

Commit 0042e50

Browse files
committed
feat: when creating a new year, now copy the current year's categories
1 parent 184f1e8 commit 0042e50

File tree

2 files changed

+18
-2
lines changed

2 files changed

+18
-2
lines changed

src/store/state/index.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { moveInArrays, readFile, remove, uuid } from '@utils';
55
import { DeepReadonly, inject, reactive, readonly, ShallowRef, shallowRef, watch } from 'vue';
66
import { migrateApplicationState } from './migrator';
77
import { AvailableCurrency, Budget, BudgetGroup, BudgetYear, DataState, DataStates, DataStateV1 } from './types';
8-
import { generateBudgetYear } from './utils';
8+
import { generateBudgetYearFromCurrent } from './utils';
99

1010
export const DATA_STORE_KEY = Symbol('DataStore');
1111

@@ -184,7 +184,8 @@ export const createDataStore = (storage?: Storage): Store => {
184184
let data = state.years.find((v) => v.year === year);
185185

186186
if (!data) {
187-
data = generateBudgetYear(year);
187+
//data = generateBudgetYear(year);
188+
data = generateBudgetYearFromCurrent(year, getCurrentYear());
188189
state.years.push(data);
189190
state.years.sort((a, b) => a.year - b.year);
190191
}

src/store/state/utils.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,18 @@ export const generateBudgetYear = (year: number): BudgetYear => ({
1818
income: [generateBudgetGroup('General', ['Other'])],
1919
expenses: [generateBudgetGroup('General', ['Other'])]
2020
});
21+
22+
export const generateBudgetYearFromCurrent = (year: number, current: BudgetYear): BudgetYear => {
23+
current.income = current.income.map((value) => {
24+
for (const budget of value.budgets) {
25+
budget.values = new Array(12).fill(0);
26+
}
27+
return value;
28+
});
29+
30+
return {
31+
year,
32+
income: current.income,
33+
expenses: current.expenses
34+
};
35+
};

0 commit comments

Comments
 (0)