Refactor: Implement DashboardLayout, fix mobile nav, and resolve scroll issues

This commit is contained in:
ren
2026-01-29 14:41:46 +01:00
parent 0a04e0817d
commit 811c78ffa5
171 changed files with 1678 additions and 23983 deletions

View File

@@ -0,0 +1,33 @@
import { StateCreator } from 'zustand'
import { Income, AppState } from '@/lib/types'
import { v4 as uuidv4 } from 'uuid'
export interface IncomesSlice {
incomes: Income[]
addIncome: (income: Omit<Income, 'id'>) => void
removeIncome: (id: string) => void
updateIncome: (id: string, income: Partial<Income>) => void
}
export const createIncomesSlice: StateCreator<
AppState & IncomesSlice,
[],
[],
IncomesSlice
> = (set) => ({
incomes: [],
addIncome: (income) =>
set((state) => ({
incomes: [...(state.incomes || []), { ...income, id: uuidv4() }],
})),
removeIncome: (id) =>
set((state) => ({
incomes: state.incomes.filter((i) => i.id !== id),
})),
updateIncome: (id, updatedIncome) =>
set((state) => ({
incomes: state.incomes.map((i) =>
i.id === id ? { ...i, ...updatedIncome } : i
),
})),
})