11/* eslint-disable import/exports-last */
2+ import { del , get , set } from 'idb-keyval' ;
23import { jwtDecode } from 'jwt-decode' ;
34import { pick } from 'lodash-es' ;
45import { create } from 'zustand' ;
56import { createJSONStorage , devtools , persist , subscribeWithSelector } from 'zustand/middleware' ;
7+ import type { StateStorage } from 'zustand/middleware' ;
68import { immer } from 'zustand/middleware/immer' ;
79
810import { resolveIndexFilename } from '@/utils/file' ;
@@ -16,6 +18,18 @@ import { createViewerSlice } from './slices/viewer.slice';
1618
1719import type { AppStore } from './types' ;
1820
21+ const storage : StateStorage = {
22+ getItem : async ( name : string ) : Promise < null | string > => {
23+ return ( await get ( name ) ) ?? null ;
24+ } ,
25+ removeItem : async ( name : string ) : Promise < void > => {
26+ await del ( name ) ;
27+ } ,
28+ setItem : async ( name : string , value : string ) : Promise < void > => {
29+ await set ( name , value ) ;
30+ }
31+ } ;
32+
1933export const useAppStore = create (
2034 devtools (
2135 persist (
@@ -64,7 +78,7 @@ export const useAppStore = create(
6478 _accessToken : state . auth ?. accessToken
6579 } ;
6680 } ,
67- storage : createJSONStorage ( ( ) => localStorage ) ,
81+ storage : createJSONStorage ( ( ) => storage ) ,
6882 version : 1
6983 }
7084 )
0 commit comments