next13-starter
Version:
Start a Next13 Zustand TypeScript project in few second!
43 lines (40 loc) • 1.06 kB
text/typescript
import { create } from 'zustand';
import { devtools } from 'zustand/middleware';
import { IDataStoreState } from '@interface/store';
const useDataStore = create<IDataStoreState>()(
devtools(
set => ({
isMember: false,
setIsMember: () =>
set({
isMember: false,
isLoadingMemberCheck: false,
isFetchedMemberCheck: false,
}),
isLoadingMemberCheck: false,
isFetchedMemberCheck: false,
getDataMemberCheck: async () => {
try {
set(() => ({
isLoadingMemberCheck: true,
}));
// api
set(() => ({
isMember: true,
isLoadingMemberCheck: false,
isFetchedMemberCheck: true,
}));
} catch (error: any) {
set(() => ({
isMember: false,
isLoadingMemberCheck: false,
isFetchedMemberCheck: false,
}));
throw Error(error.message);
}
},
}),
{ name: 'dataStore' },
),
);
export default useDataStore;