///
import { useRef, useEffect, useState } from 'react';
import { useParams } from 'react-router-dom';
import Replayer from 'rrweb-player';
import {
Box,
Breadcrumb,
BreadcrumbItem,
BreadcrumbLink,
Center,
} from '@chakra-ui/react';
import { getEvents, getSession } from '~/utils/storage';
export default function Player() {
const playerElRef = useRef(null);
const playerRef = useRef(null);
const { sessionId } = useParams();
const [sessionName, setSessionName] = useState('');
useEffect(() => {
if (!sessionId) return;
getSession(sessionId)
.then((session) => {
setSessionName(session.name);
})
.catch((err) => {
console.error(err);
});
getEvents(sessionId)
.then((events) => {
if (!playerElRef.current) return;
const manifest = chrome.runtime.getManifest();
const rrwebPlayerVersion = manifest.version_name || manifest.version;
const linkEl = document.createElement('link');
linkEl.href = `https://cdn.jsdelivr.net/npm/rrweb-player@${rrwebPlayerVersion}/dist/style.min.css`;
linkEl.rel = 'stylesheet';
document.head.appendChild(linkEl);
playerRef.current = new Replayer({
target: playerElRef.current as HTMLElement,
props: {
events,
autoPlay: true,
},
});
})
.catch((err) => {
console.error(err);
});
return () => {
// eslint-disable-next-line
playerRef.current?.pause();
};
}, [sessionId]);
return (
<>
Sessions
{sessionName}
>
);
}