import {useMemo} from 'react';
import * as Sentry from '@sentry/react';
import ExternalLink from 'sentry/components/links/externalLink';
import Link from 'sentry/components/links/link';
import {useReplayContext} from 'sentry/components/replays/replayContext';
import TextCopyInput from 'sentry/components/textCopyInput';
import {Tooltip} from 'sentry/components/tooltip';
import {t, tct} from 'sentry/locale';
import getCurrentUrl from 'sentry/utils/replays/getCurrentUrl';
import useOrganization from 'sentry/utils/useOrganization';
import useProjects from 'sentry/utils/useProjects';
import {normalizeUrl} from 'sentry/utils/withDomainRequired';
function ReplayCurrentUrl() {
const {currentTime, replay} = useReplayContext();
const replayRecord = replay?.getReplay();
const frames = replay?.getNavigationFrames();
const projId = replayRecord?.project_id;
const {projects} = useProjects();
const projSlug = projects.find(p => p.id === projId)?.slug ?? undefined;
const organization = useOrganization();
const url = useMemo(() => {
try {
return getCurrentUrl(replayRecord, frames, currentTime);
} catch (err) {
Sentry.captureException(err);
return '';
}
}, [replayRecord, frames, currentTime]);
if (!replay || !url) {
return (
{''}
);
}
if (url.includes('[Filtered]')) {
return (
{'Data Scrubber'}
),
settings: projSlug ? (
{'Settings, under Security & Privacy'}
) : (
'Settings, under Security & Privacy'
),
}
)}
isHoverable
>
{url}
);
}
return (
{url}
);
}
export default ReplayCurrentUrl;