in-app-notification.ts 942 B

123456789101112131415161718192021222324
  1. import useSWR, { SWRResponse } from 'swr';
  2. import { InAppNotificationStatuses, IInAppNotification, PaginateResult } from '~/interfaces/in-app-notification';
  3. import { apiv3Get } from '../client/util/apiv3-client';
  4. // eslint-disable-next-line @typescript-eslint/no-unused-vars
  5. export const useSWRxInAppNotifications = <Data, Error>(
  6. limit: number,
  7. offset?: number,
  8. status?: InAppNotificationStatuses,
  9. ): SWRResponse<PaginateResult<IInAppNotification>, Error> => {
  10. return useSWR(
  11. ['/in-app-notification/list', limit, offset, status],
  12. endpoint => apiv3Get(endpoint, { limit, offset, status }).then(response => response.data),
  13. );
  14. };
  15. // eslint-disable-next-line @typescript-eslint/no-unused-vars
  16. export const useSWRxInAppNotificationStatus = <Data, Error>(
  17. ): SWRResponse<number, Error> => {
  18. return useSWR(
  19. ['/in-app-notification/status'],
  20. endpoint => apiv3Get(endpoint).then(response => response.data.count),
  21. );
  22. };