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

reorganize swr hooks for admin

Yuki Takei 2 лет назад
Родитель
Сommit
3ec2e9938a

+ 1 - 1
apps/app/src/components/Admin/Customize/CustomizeSidebarSetting.tsx

@@ -4,7 +4,7 @@ import { useTranslation } from 'next-i18next';
 import { Card, CardBody } from 'reactstrap';
 
 import { toastSuccess, toastError } from '~/client/util/toastr';
-import { useSWRxSidebarConfig } from '~/stores/ui';
+import { useSWRxSidebarConfig } from '~/stores/admin/sidebar-config';
 import { useNextThemes } from '~/stores/use-next-themes';
 
 const CustomizeSidebarsetting = (): JSX.Element => {

+ 52 - 0
apps/app/src/stores/admin/sidebar-config.tsx

@@ -0,0 +1,52 @@
+import type { SWRResponse } from 'swr';
+import useSWRImmutable from 'swr/immutable';
+
+import { apiv3Get, apiv3Put } from '~/client/util/apiv3-client';
+import type { ISidebarConfig } from '~/interfaces/sidebar-config';
+
+type SidebarConfigOption = {
+  update: () => Promise<void>,
+  isSidebarCollapsedMode: boolean|undefined,
+  setIsSidebarCollapsedMode: (isSidebarCollapsedMode: boolean) => void,
+}
+
+export const useSWRxSidebarConfig = (): SWRResponse<ISidebarConfig, Error> & SidebarConfigOption => {
+  const swrResponse = useSWRImmutable<ISidebarConfig>(
+    '/customize-setting/sidebar',
+    endpoint => apiv3Get<ISidebarConfig>(endpoint).then(result => result.data),
+  );
+  return {
+    ...swrResponse,
+    update: async() => {
+      const { data } = swrResponse;
+
+      if (data == null) {
+        return;
+      }
+
+      const { isSidebarCollapsedMode } = data;
+
+      const updateData = {
+        isSidebarCollapsedMode,
+      };
+
+      // invoke API
+      await apiv3Put('/customize-setting/sidebar', updateData);
+    },
+    isSidebarCollapsedMode: swrResponse.data?.isSidebarCollapsedMode,
+    setIsSidebarCollapsedMode: (isSidebarCollapsedMode) => {
+      const { data, mutate } = swrResponse;
+
+      if (data == null) {
+        return;
+      }
+
+      const updateData = {
+        isSidebarCollapsedMode,
+      };
+
+      // update isSidebarCollapsedMode in cache, not revalidate
+      mutate({ ...data, ...updateData }, false);
+    },
+  };
+};

+ 0 - 51
apps/app/src/stores/ui.tsx

@@ -265,57 +265,6 @@ export const useDrawerMode = (): SWRResponse<boolean, Error> => {
   );
 };
 
-type SidebarConfigOption = {
-  update: () => Promise<void>,
-  isSidebarCollapsedMode: boolean|undefined,
-  setIsSidebarCollapsedMode: (isSidebarCollapsedMode: boolean) => void,
-}
-
-export const useSWRxSidebarConfig = (): SWRResponse<ISidebarConfig, Error> & SidebarConfigOption => {
-  const swrResponse = useSWRImmutable<ISidebarConfig>(
-    '/customize-setting/sidebar',
-    endpoint => apiv3Get<ISidebarConfig>(endpoint).then(result => result.data),
-  );
-  return {
-    ...swrResponse,
-    update: async() => {
-      const { data } = swrResponse;
-
-      if (data == null) {
-        return;
-      }
-
-      const { isSidebarCollapsedMode } = data;
-
-      const updateData = {
-        isSidebarCollapsedMode,
-      };
-
-      // invoke API
-      await apiv3Put('/customize-setting/sidebar', updateData);
-    },
-    isSidebarCollapsedMode: swrResponse.data?.isSidebarCollapsedMode,
-    setIsSidebarCollapsedMode: (isSidebarCollapsedMode) => {
-      const { data, mutate } = swrResponse;
-
-      if (data == null) {
-        return;
-      }
-
-      const updateData = {
-        isSidebarCollapsedMode,
-      };
-
-      // update isSidebarCollapsedMode in cache, not revalidate
-      mutate({ ...data, ...updateData }, false);
-    },
-  };
-};
-
-export const useDrawerOpened = (isOpened?: boolean): SWRResponse<boolean, Error> => {
-  return useStaticSWR('isDrawerOpened', isOpened, { fallbackData: false });
-};
-
 export const useSidebarResizeDisabled = (isDisabled?: boolean): SWRResponse<boolean, Error> => {
   return useStaticSWR('isSidebarResizeDisabled', isDisabled, { fallbackData: false });
 };