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

Define return type for the apiv3 get call and fix mistake in interface

arvid-e 5 месяцев назад
Родитель
Сommit
72a290b04e
2 измененных файлов с 23 добавлено и 8 удалено
  1. 1 3
      apps/app/src/interfaces/activity.ts
  2. 22 5
      apps/app/src/stores/recent-activity.ts

+ 1 - 3
apps/app/src/interfaces/activity.ts

@@ -697,7 +697,5 @@ export type IRecentActivitySearchFilter = {
 };
 
 export interface UserActivitiesResult {
-  data: {
-    serializedPaginationResult: PaginateResult<IActivityHasId>;
-  };
+  serializedPaginationResult: PaginateResult<IActivityHasId>;
 }

+ 22 - 5
apps/app/src/stores/recent-activity.ts

@@ -2,18 +2,35 @@ import type { SWRResponse } from 'swr';
 import useSWRImmutable from 'swr/immutable';
 
 import { apiv3Get } from '~/client/util/apiv3-client';
-import type { IActivityHasId, IRecentActivitySearchFilter } from '~/interfaces/activity';
+import type { UserActivitiesResult, IActivityHasId, IRecentActivitySearchFilter } from '~/interfaces/activity';
 import type { PaginateResult } from '~/interfaces/mongoose-utils';
 
-export const useSWRxRecentActivity = (limit?: number, offset?: number, searchFilter?: IRecentActivitySearchFilter):
-  SWRResponse<PaginateResult<IActivityHasId>, Error> => {
+export const useSWRxRecentActivity = (
+    limit?: number,
+    offset?: number,
+    searchFilter?: IRecentActivitySearchFilter,
+
+): SWRResponse<PaginateResult<IActivityHasId>, Error> => {
 
   const stringifiedSearchFilter = JSON.stringify(searchFilter);
 
   const key = ['/user-activities', limit, offset, stringifiedSearchFilter];
 
-  const fetcher = ([endpoint, limit, offset, stringifiedSearchFilter]) => apiv3Get(endpoint, { limit, offset, searchFilter: stringifiedSearchFilter })
-    .then(result => result.data.serializedPaginationResult);
+  const fetcher = ([
+    endpoint,
+    limitParam,
+    offsetParam,
+    filterParam,
+  ]) => {
+
+    const promise = apiv3Get<UserActivitiesResult>(endpoint, {
+      limit: limitParam,
+      offset: offsetParam,
+      searchFilter: filterParam,
+    });
+
+    return promise.then(result => result.data.serializedPaginationResult);
+  };
 
 
   return useSWRImmutable(key, fetcher);