import React from 'react'; import cn from 'classnames'; import { Icon } from 'UI'; import { useStore } from 'App/mstore'; import { observer } from 'mobx-react-lite'; import { useHistory } from 'react-router-dom'; import { multiview, liveSession, withSiteId } from 'App/routes'; interface ITab { onClick?: () => void; classNames?: string; children: React.ReactNode; style?: Record; } function Tab(props: ITab) { return (
{props.children}
); } export const InactiveTab = React.memo((props: Omit) => ( )); const ActiveTab = React.memo((props: Omit) => ( )); const CurrentTab = React.memo(() => ( PLAYING )); function AssistTabs({ session }: { session: Record }) { const history = useHistory(); const { assistMultiviewStore, projectsStore } = useStore(); const siteId = projectsStore.siteId!; const placeholder = new Array(4 - assistMultiviewStore.sessions.length).fill( 0, ); React.useEffect(() => { if (assistMultiviewStore.sessions.length === 0) { assistMultiviewStore.setDefault(session); } }, []); const openGrid = () => { const sessionIdQuery = encodeURIComponent( assistMultiviewStore.sessions.map((s) => s.sessionId).join(','), ); return history.push(withSiteId(multiview(sessionIdQuery), siteId)); }; const openLiveSession = (sessionId: string) => { assistMultiviewStore.setActiveSession(sessionId); history.push(withSiteId(liveSession(sessionId), siteId)); }; return (
{assistMultiviewStore.sortedSessions.map( (session: { key: number; sessionId: string }) => ( {assistMultiviewStore.isActive(session.sessionId) ? ( ) : ( openLiveSession(session.sessionId)} /> )} ), )} {placeholder.map((_, i) => ( ))}
); } export default observer(AssistTabs);