activity.ts 996 B

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