activity.ts 925 B

12345678910111213141516171819202122
  1. import { SWRResponse } from 'swr';
  2. import useSWRImmutable from 'swr/immutable';
  3. import { apiv3Get } from '../client/util/apiv3-client';
  4. import { IActivityHasId, SupportedActionType } from '../interfaces/activity';
  5. import { PaginateResult } from '../interfaces/mongoose-utils';
  6. type ISearchFilter = {
  7. usernames?: string[]
  8. dates?: {startDate: string | null, endDate: string | null}
  9. actions?: SupportedActionType[]
  10. }
  11. export const useSWRxActivityList = (limit?: number, offset?: number, searchFilter?: ISearchFilter): SWRResponse<PaginateResult<IActivityHasId>, Error> => {
  12. const stringifiedSearchFilter = JSON.stringify(searchFilter);
  13. return useSWRImmutable(
  14. ['/activity', limit, offset, stringifiedSearchFilter],
  15. (endpoint, limit, offset, stringifiedSearchFilter) => apiv3Get(endpoint, { limit, offset, searchFilter: stringifiedSearchFilter })
  16. .then(result => result.data.paginationResult),
  17. );
  18. };