replayCurrentUrl.tsx 894 B

123456789101112131415161718192021222324252627282930313233
  1. import {useMemo} from 'react';
  2. import * as Sentry from '@sentry/react';
  3. import {useReplayContext} from 'sentry/components/replays/replayContext';
  4. import TextCopyInput from 'sentry/components/textCopyInput';
  5. import getCurrentUrl from 'sentry/utils/replays/getCurrentUrl';
  6. function ReplayCurrentUrl() {
  7. const {currentTime, replay} = useReplayContext();
  8. const replayRecord = replay?.getReplay();
  9. const frames = replay?.getNavigationFrames();
  10. const url = useMemo(() => {
  11. try {
  12. return getCurrentUrl(replayRecord, frames, currentTime);
  13. } catch (err) {
  14. Sentry.captureException(err);
  15. return '';
  16. }
  17. }, [replayRecord, frames, currentTime]);
  18. if (!replay || !url) {
  19. return (
  20. <TextCopyInput size="sm" disabled>
  21. {''}
  22. </TextCopyInput>
  23. );
  24. }
  25. return <TextCopyInput size="sm">{url}</TextCopyInput>;
  26. }
  27. export default ReplayCurrentUrl;