|
import { createStore } from 'zustand/vanilla'; |
|
|
|
type SelectedTab = 'history' | 'pending'; |
|
|
|
type SharedState = { |
|
uiAsTab: boolean; |
|
selectedTab: SelectedTab; |
|
}; |
|
|
|
type SharedActions = { |
|
setSelectedTab: (tab: SelectedTab) => void; |
|
}; |
|
|
|
export const createSharedStore = (initialState: SharedState) => { |
|
const store = createStore<SharedState>(() => initialState); |
|
const { getState, setState, subscribe } = store; |
|
|
|
const actions: SharedActions = { |
|
setSelectedTab: (tab: SelectedTab) => { |
|
setState({ selectedTab: tab }); |
|
}, |
|
}; |
|
|
|
return { getState, setState, subscribe, ...actions }; |
|
}; |
|
|