瀏覽代碼

create useSWRxTagsList

Shun Miyazawa 4 年之前
父節點
當前提交
8aebb4e066
共有 2 個文件被更改,包括 19 次插入0 次删除
  1. 2 0
      packages/app/src/interfaces/tag.ts
  2. 17 0
      packages/app/src/stores/tag.tsx

+ 2 - 0
packages/app/src/interfaces/tag.ts

@@ -1,3 +1,5 @@
+export type Tag = string;
+
 export type ITag = {
   name: string,
   createdAt: Date;

+ 17 - 0
packages/app/src/stores/tag.tsx

@@ -0,0 +1,17 @@
+import { SWRResponse } from 'swr';
+import useSWRImmutable from 'swr/immutable';
+
+import { Tag } from '~/interfaces/tag';
+
+import { apiGet } from '../client/util/apiv1-client';
+
+
+export type ITagsApiv1Result = {
+  ok: boolean,
+  tags: Tag[];
+}
+
+export const useSWRxTagsList = (limit?: number, offset?: number): SWRResponse<Tag[], Error> => {
+  return useSWRImmutable(['/tags.list', limit, offset],
+    (endpoint, limit, offset) => apiGet(endpoint, { limit, offset }).then((response: ITagsApiv1Result) => response.tags));
+};