* feat(ui/tracker): start tag n watch * fix(tracker): test coverage, fix some watcher api * fix(tracker): add intersectionobserver, adjust tests * feat(tracker): relay + apollo plugins * feat(ui): tags search * feat(ui): tags name edit * feat(ui): tags search icon * feat(ui): icons for tabs in player * feat(ui): save and find button * feat(tracker): save tags in session storage (just in case) * feat(ui): improve loading * feat(ui): fix icon names gen * feat(ui): fix typo
33 lines
1.1 KiB
TypeScript
33 lines
1.1 KiB
TypeScript
import React from 'react';
|
|
import { findDOMNode } from 'react-dom';
|
|
import cn from 'classnames';
|
|
import Overlay from 'Components/Session_/Player/Overlay';
|
|
import stl from 'Components/Session_/Player/player.module.css';
|
|
import { PlayerContext } from 'App/components/Session/playerContext';
|
|
import { observer } from 'mobx-react-lite'
|
|
|
|
function Player() {
|
|
const playerContext = React.useContext(PlayerContext);
|
|
const screenWrapper = React.useRef<HTMLDivElement>(null);
|
|
React.useEffect(() => {
|
|
const parentElement = findDOMNode(screenWrapper.current) as HTMLDivElement | null;
|
|
if (parentElement) {
|
|
playerContext.player.attach(parentElement);
|
|
}
|
|
}, []);
|
|
|
|
if (!playerContext.player) return null;
|
|
|
|
return (
|
|
<div
|
|
className={cn(stl.playerBody, 'flex-1 flex flex-col relative')}
|
|
>
|
|
<div className={cn("relative flex-1", 'overflow-visible')}>
|
|
<Overlay isClickmap />
|
|
<div className={cn(stl.screenWrapper, stl.checkers, '!overflow-y-scroll')} style={{ maxHeight: 800 }} ref={screenWrapper} />
|
|
</div>
|
|
</div>
|
|
);
|
|
}
|
|
|
|
export default observer(Player);
|