| 1 |
import create from 'zustand' |
| 2 |
import { persist, subscribeWithSelector } from 'zustand/middleware' |
| 3 |
|
| 4 |
export const useGlobalStore = create( |
| 5 |
subscribeWithSelector( |
| 6 |
persist( |
| 7 |
(set, get) => ({ |
| 8 |
open: false, |
| 9 |
ready: false, |
| 10 |
metaData: {}, |
| 11 |
// These two are here just to persist their previous values, |
| 12 |
// but could be refactored to be the source instead. |
| 13 |
// It would require a refactor to state/Templates.js |
| 14 |
currentTaxonomies: {}, |
| 15 |
currentType: 'pattern', |
| 16 |
modals: [], |
| 17 |
pushModal: (modal) => set({ modals: [modal, ...get().modals] }), |
| 18 |
popModal: () => set({ modals: get().modals.slice(1) }), |
| 19 |
removeAllModals: () => set({ modals: [] }), |
| 20 |
updateCurrentTaxonomies: (data) => |
| 21 |
set({ currentTaxonomies: { ...data } }), |
| 22 |
updateCurrentType: (data) => set({ currentType: data }), |
| 23 |
setOpen: (value) => set({ open: value }), |
| 24 |
setReady: (value) => set({ ready: value }), |
| 25 |
}), |
| 26 |
{ |
| 27 |
name: 'extendify-global-state', |
| 28 |
partialize: (state) => { |
| 29 |
delete state.modals |
| 30 |
delete state.ready |
| 31 |
return state |
| 32 |
}, |
| 33 |
}, |
| 34 |
), |
| 35 |
), |
| 36 |
) |
| 37 |
|