useFetchFeedbackList.tsx 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. import {useEffect, useState} from 'react';
  2. import hydrateFeedbackRecord from 'sentry/components/feedback/hydrateFeedbackRecord';
  3. import {exampleListResponse} from 'sentry/utils/feedback/example';
  4. import {
  5. FeedbackListQueryParams,
  6. FeedbackListResponse,
  7. HydratedFeedbackList,
  8. } from 'sentry/utils/feedback/types';
  9. import type {UseApiQueryOptions} from 'sentry/utils/queryClient';
  10. type MockState = {
  11. data: undefined | FeedbackListResponse;
  12. isError: false;
  13. isLoading: boolean;
  14. };
  15. export default function useFetchFeedbackList(
  16. _params: FeedbackListQueryParams,
  17. _options: Partial<UseApiQueryOptions<HydratedFeedbackList>> = {}
  18. ) {
  19. // Mock some state to simulate `useApiQuery` while the backend is being constructed
  20. const [state, setState] = useState<MockState>({
  21. isLoading: true,
  22. isError: false,
  23. data: undefined,
  24. });
  25. useEffect(() => {
  26. const timeout = setTimeout(() => {
  27. setState({
  28. isLoading: false,
  29. isError: false,
  30. data: exampleListResponse,
  31. });
  32. }, Math.random() * 1000);
  33. return () => clearTimeout(timeout);
  34. }, []);
  35. return {
  36. ...state,
  37. data: state.data?.map(hydrateFeedbackRecord),
  38. };
  39. }