📦 EqualifyEverything / equalify-dashboard

📄 index.ts · 27 lines
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27import { create } from 'zustand';
import { persist } from 'zustand/middleware';

import { createAuthSlice } from './slices/authSlice';
import { createFilterSlice } from './slices/filterSlice';

type StoreState = ReturnType<typeof createAuthSlice> &
  ReturnType<typeof createFilterSlice>;

export const useStore = create<StoreState>()(
  persist(
    (...args) => ({
      ...createAuthSlice(...args),
      ...createFilterSlice(...args),
    }),
    {
      name: 'equalify-store',
      partialize: (state) => ({
        isAuthenticated: state.isAuthenticated,
        needsConfirmation: state.needsConfirmation,
        pendingUsername: state.pendingUsername,
        user: state.user,
      }),
    },
  ),
);