useSessionProjectTotal.tsx 881 B

12345678910111213141516171819202122232425262728293031323334
  1. import type {SessionApiResponse} from 'sentry/types/organization';
  2. import {useApiQuery} from 'sentry/utils/queryClient';
  3. import {useLocation} from 'sentry/utils/useLocation';
  4. import useOrganization from 'sentry/utils/useOrganization';
  5. export default function useSessionProjectTotal() {
  6. const location = useLocation();
  7. const organization = useOrganization();
  8. const {
  9. data: projSessionData,
  10. isPending,
  11. isError,
  12. } = useApiQuery<SessionApiResponse>(
  13. [
  14. `/organizations/${organization.slug}/sessions/`,
  15. {
  16. query: {
  17. ...location.query,
  18. field: ['sum(session)'],
  19. groupBy: ['project'],
  20. },
  21. },
  22. ],
  23. {staleTime: 0}
  24. );
  25. if (isPending || isError || !projSessionData) {
  26. return 0;
  27. }
  28. return projSessionData.groups.length
  29. ? projSessionData.groups[0]!.totals['sum(session)'] ?? 0
  30. : 0;
  31. }