activity.ts 918 B

123456789101112131415161718
  1. import { SWRResponse } from 'swr';
  2. import useSWRImmutable from 'swr/immutable';
  3. import { apiv3Get } from '~/client/util/apiv3-client';
  4. import { IActivityHasId, ISearchFilter } from '~/interfaces/activity';
  5. import { PaginateResult } from '~/interfaces/mongoose-utils';
  6. import { useAuditLogEnabled } from '~/stores/context';
  7. export const useSWRxActivity = (limit?: number, offset?: number, searchFilter?: ISearchFilter): SWRResponse<PaginateResult<IActivityHasId>, Error> => {
  8. const { data: auditLogEnabled } = useAuditLogEnabled();
  9. const stringifiedSearchFilter = JSON.stringify(searchFilter);
  10. return useSWRImmutable(
  11. auditLogEnabled ? ['/activity', limit, offset, stringifiedSearchFilter] : null,
  12. ([endpoint, limit, offset, stringifiedSearchFilter]) => apiv3Get(endpoint, { limit, offset, searchFilter: stringifiedSearchFilter })
  13. .then(result => result.data.serializedPaginationResult),
  14. );
  15. };