Files
finanzas/lib/store.ts

33 lines
1.2 KiB
TypeScript

import { create } from 'zustand'
import { persist } from 'zustand/middleware'
import { AppState } from '@/lib/types'
import { createDebtsSlice, DebtsSlice } from './store/slices/debtsSlice'
import { createCardsSlice, CardsSlice } from './store/slices/cardsSlice'
import { createBudgetSlice, BudgetSlice } from './store/slices/budgetSlice'
import { createAlertsSlice, AlertsSlice } from './store/slices/alertsSlice'
import { createIncomesSlice, IncomesSlice } from './store/slices/incomesSlice'
import { createServicesSlice, ServicesSlice } from './store/slices/servicesSlice'
// Combined State Interface
// Note: We extend the individual slices to create the full store interface
export interface FinanzasState extends DebtsSlice, CardsSlice, BudgetSlice, AlertsSlice, ServicesSlice, IncomesSlice { }
export const useFinanzasStore = create<FinanzasState>()(
persist(
(...a) => ({
...createDebtsSlice(...a),
...createCardsSlice(...a),
...createBudgetSlice(...a),
...createAlertsSlice(...a),
...createServicesSlice(...a),
...createIncomesSlice(...a),
}),
{
name: 'finanzas-storage',
// Optional: Filter what gets persisted if needed in the future
// partialize: (state) => ({ ... })
}
)
)