Skip to content

Commit 414ef4f

Browse files
Hoverthsimonwep
authored andcommitted
feat: when creating a new year, now copy the current year's categories
1 parent 184f1e8 commit 414ef4f

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

src/store/state/index.ts

Lines changed: 3 additions & 4 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

@@ -181,11 +181,10 @@ export const createDataStore = (storage?: Storage): Store => {
181181
},
182182

183183
changeYear(year: number) {
184-
let data = state.years.find((v) => v.year === year);
184+
const data = state.years.find((v) => v.year === year);
185185

186186
if (!data) {
187-
data = generateBudgetYear(year);
188-
state.years.push(data);
187+
state.years.push(generateBudgetYearFromCurrent(year, getCurrentYear()));
189188
state.years.sort((a, b) => a.year - b.year);
190189
}
191190

src/store/state/utils.ts

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,3 +18,17 @@ 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+
const clearValues = (value: BudgetGroup): BudgetGroup => ({
24+
id: uuid(),
25+
name: value.name,
26+
budgets: value.budgets.map((budget) => generateBudget(budget.name))
27+
});
28+
29+
return {
30+
year,
31+
income: current.income.map(clearValues),
32+
expenses: current.expenses.map(clearValues)
33+
};
34+
};

0 commit comments

Comments
 (0)