Shun Miyazawa 4 лет назад
Родитель
Сommit
6c5280ff61
1 измененных файлов с 21 добавлено и 0 удалено
  1. 21 0
      packages/app/src/stores/bookmarks.tsx

+ 21 - 0
packages/app/src/stores/bookmarks.tsx

@@ -1 +1,22 @@
 import useSWR, { SWRResponse } from 'swr';
+
+import { Types } from 'mongoose';
+import { apiv3Get } from '~/client/util/apiv3-client';
+
+import { useIsGuestUser } from './context';
+
+// eslint-disable-next-line @typescript-eslint/no-unused-vars
+export const useSWRxBookmarksInfo = <Data, Error>(pageId: Types.ObjectId):SWRResponse<{isBookmarked: boolean | null, sumOfBookmarks: number | null}, Error> => {
+  const { data: isGuestUser } = useIsGuestUser();
+
+  const key = isGuestUser === false ? ['/bookmarks/info', pageId] : null;
+  return useSWR(
+    key,
+    (endpoint, pageId) => apiv3Get(endpoint, { pageId }).then((response) => {
+      return {
+        isBookmarked: response.data.isBookmarked,
+        sumOfBookmarks: response.data.sumOfBookmarks,
+      };
+    }),
+  );
+};