import {Fragment} from 'react';
import type {RouteComponentProps} from 'react-router';
import DetailedError from 'sentry/components/errors/detailedError';
import NotFound from 'sentry/components/errors/notFound';
import * as Layout from 'sentry/components/layouts/thirds';
import List from 'sentry/components/list';
import ListItem from 'sentry/components/list/listItem';
import {
Provider as ReplayContextProvider,
useReplayContext,
} from 'sentry/components/replays/replayContext';
import {t} from 'sentry/locale';
import useReplayData from 'sentry/utils/replays/hooks/useReplayData';
import useReplayLayout from 'sentry/utils/replays/hooks/useReplayLayout';
import useReplayPageview from 'sentry/utils/replays/hooks/useReplayPageview';
import useOrganization from 'sentry/utils/useOrganization';
import ReplaysLayout from 'sentry/views/replays/detail/layout';
import Page from 'sentry/views/replays/detail/page';
import type {ReplayRecord} from 'sentry/views/replays/types';
import {getInitialTimeOffset} from 'sentry/views/replays/utils';
type Props = RouteComponentProps<
{replaySlug: string},
{},
any,
{event_t: string; t: number}
>;
function ReplayDetails({
location: {
query: {
event_t: eventTimestamp, // Timestamp of the event or activity that was selected
t: initialTimeOffset, // Time, in seconds, where the video should start
},
},
params: {replaySlug},
}: Props) {
useReplayPageview('replay.details-time-spent');
const {slug: orgSlug} = useOrganization();
const {fetching, onRetry, replay, replayRecord, fetchError} = useReplayData({
replaySlug,
orgSlug,
});
const startTimestampMs = replayRecord?.started_at.getTime() ?? 0;
if (fetchError) {
if (fetchError.statusText === 'Not Found') {
return (
);
}
const reasons = [
t('The replay is still processing'),
t('The replay has been deleted by a member in your organization'),
t('There is an internal systems error'),
];
return (