Просмотр исходного кода

make sync-to-storage universal

Yuki Takei 3 лет назад
Родитель
Сommit
deea1bf062
1 измененных файлов с 11 добавлено и 2 удалено
  1. 11 2
      packages/app/src/stores/middlewares/sync-to-storage.ts

+ 11 - 2
packages/app/src/stores/middlewares/sync-to-storage.ts

@@ -1,3 +1,4 @@
+import { isClient } from '@growi/core';
 import { Middleware } from 'swr';
 import { Middleware } from 'swr';
 
 
 const generateKeyInStorage = (key: string): string => {
 const generateKeyInStorage = (key: string): string => {
@@ -52,6 +53,14 @@ export const createSyncToStorageMiddlware = (
   };
   };
 };
 };
 
 
-export const localStorageMiddleware = createSyncToStorageMiddlware(localStorage);
+const passthroughMiddleware: Middleware = (useSWRNext) => {
+  return (key, fetcher, config) => useSWRNext(key, fetcher, config);
+};
+
+export const localStorageMiddleware = isClient()
+  ? createSyncToStorageMiddlware(localStorage)
+  : passthroughMiddleware;
 
 
-export const sessionStorageMiddleware = createSyncToStorageMiddlware(sessionStorage);
+export const sessionStorageMiddleware = isClient()
+  ? createSyncToStorageMiddlware(sessionStorage)
+  : passthroughMiddleware;