useReplayPageview.tsx 749 B

1234567891011121314151617181920212223242526
  1. import {useEffect, useRef} from 'react';
  2. import {trackAnalytics} from 'sentry/utils/analytics';
  3. import useOrganization from 'sentry/utils/useOrganization';
  4. import {useUser} from 'sentry/utils/useUser';
  5. function useReplayPageview(type: 'replay.details-time-spent' | 'replay.list-time-spent') {
  6. const user = useUser();
  7. const organization = useOrganization();
  8. const startTimeRef = useRef(Date.now());
  9. useEffect(() => {
  10. const startTime = startTimeRef.current;
  11. return () => {
  12. const endTime = Date.now();
  13. trackAnalytics(type, {
  14. organization,
  15. seconds: (endTime - startTime) / 1000,
  16. user_email: user.email,
  17. });
  18. };
  19. }, [organization, type, user.email]);
  20. }
  21. export default useReplayPageview;