import withPermissions from 'HOCs/withPermissions'; import React, { useEffect } from 'react'; import { clearLogs } from 'App/dev/console'; import usePageTitle from 'App/hooks/usePageTitle'; import { useStore } from 'App/mstore'; import { sessions as sessionsRoute } from 'App/routes'; import MobilePlayer from 'Components/Session/MobilePlayer'; import { Link, Loader, NoContent } from 'UI'; import { observer } from 'mobx-react-lite'; import WebPlayer from './WebPlayer'; import { useTranslation } from 'react-i18next'; const SESSIONS_ROUTE = sessionsRoute(); function Session({ match: { params: { sessionId }, }, }: { match: any; }) { const { t } = useTranslation(); usePageTitle('OpenReplay Session Player'); const { sessionStore } = useStore(); const hasErrors = sessionStore.fetchFailed; const session = sessionStore.current; const fetchV2 = sessionStore.fetchSessionData; const { clearCurrentSession } = sessionStore; useEffect(() => { if (sessionId != null) { void fetchV2(sessionId); } else { console.error('No sessionID in route.'); } return () => { clearCurrentSession(); }; }, [sessionId]); useEffect(() => { clearLogs(); sessionStore.resetUserFilter(); }, []); const player = session.isMobileNative ? : ; return ( {'Please check your data retention plan, or try '} {t('another one')} } > {player} ); } export default withPermissions( ['SESSION_REPLAY', 'SERVICE_SESSION_REPLAY'], '', true, false, )(observer(Session));