diff --git a/frontend/app/components/Session/LiveSession.js b/frontend/app/components/Session/LiveSession.js index 54df7d5c7..19b7d8614 100644 --- a/frontend/app/components/Session/LiveSession.js +++ b/frontend/app/components/Session/LiveSession.js @@ -11,7 +11,6 @@ import LivePlayer from './LivePlayer'; function LiveSession({ sessionId, loading, - session, fetchSession, fetchSlackList, hasSessionsPath, diff --git a/frontend/app/components/Session/Session.js b/frontend/app/components/Session/Session.js index dae27df35..e3801f84a 100644 --- a/frontend/app/components/Session/Session.js +++ b/frontend/app/components/Session/Session.js @@ -16,9 +16,7 @@ function Session({ sessionId, loading, hasErrors, - session, fetchSession, - fetchSlackList, }) { usePageTitle("OpenReplay Session Player"); const [ initializing, setInitializing ] = useState(true) diff --git a/frontend/app/components/Session_/HeaderInfo.js b/frontend/app/components/Session_/HeaderInfo.js deleted file mode 100644 index e53bd0c07..000000000 --- a/frontend/app/components/Session_/HeaderInfo.js +++ /dev/null @@ -1,13 +0,0 @@ -import React from 'react'; -import { Icon } from 'UI'; - -const HeaderInfo = ({ icon, label }) => { - return ( -
- -
{ label }
-
- ); -}; - -export default HeaderInfo; diff --git a/frontend/app/components/Session_/Player/Player.js b/frontend/app/components/Session_/Player/Player.js deleted file mode 100644 index 6fa429eed..000000000 --- a/frontend/app/components/Session_/Player/Player.js +++ /dev/null @@ -1,122 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import { findDOMNode } from 'react-dom'; -import cn from 'classnames'; -import { EscapeButton } from 'UI'; -import { - NONE, - CONSOLE, - NETWORK, - STACKEVENTS, - STORAGE, - PROFILER, - PERFORMANCE, - GRAPHQL, - EXCEPTIONS, - INSPECTOR, - OVERVIEW, - fullscreenOff, -} from 'Duck/components/player'; -import NetworkPanel from 'Shared/DevTools/NetworkPanel'; -import Storage from '../Storage'; -import { ConnectedPerformance } from '../Performance'; -import GraphQL from '../GraphQL'; -import Exceptions from '../Exceptions/Exceptions'; -import Inspector from '../Inspector'; -import Controls from './Controls'; -import Overlay from './Overlay'; -import stl from './player.module.css'; -import { updateLastPlayedSession } from 'Duck/sessions'; -import OverviewPanel from '../OverviewPanel'; -import ConsolePanel from 'Shared/DevTools/ConsolePanel'; -import ProfilerPanel from 'Shared/DevTools/ProfilerPanel'; -import { PlayerContext } from 'App/components/Session/playerContext'; -import StackEventPanel from 'Shared/DevTools/StackEventPanel'; - -function Player(props) { - const { - className, - fullscreen, - fullscreenOff, - nextId, - closedLive, - bottomBlock, - activeTab, - fullView, - isMultiview, - isClickmap, - } = props; - const playerContext = React.useContext(PlayerContext); - const screenWrapper = React.useRef(); - const bottomBlockIsActive = !fullscreen && bottomBlock !== NONE; - - React.useEffect(() => { - props.updateLastPlayedSession(props.sessionId); - if (!props.closedLive || isMultiview) { - const parentElement = findDOMNode(screenWrapper.current); //TODO: good architecture - playerContext.player.attach(parentElement); - playerContext.player.play(); - } - }, []); - - React.useEffect(() => { - playerContext.player.scale(); - }, [props.bottomBlock, props.fullscreen, playerContext.player]); - - if (!playerContext.player) return null; - - const maxWidth = activeTab ? 'calc(100vw - 270px)' : '100vw'; - return ( -
- {fullscreen && } -
- -
-
- {!fullscreen && !!bottomBlock && ( -
- {bottomBlock === OVERVIEW && } - {bottomBlock === CONSOLE && } - {bottomBlock === NETWORK && } - {/* {bottomBlock === STACKEVENTS && } */} - {bottomBlock === STACKEVENTS && } - {bottomBlock === STORAGE && } - {bottomBlock === PROFILER && } - {bottomBlock === PERFORMANCE && } - {bottomBlock === GRAPHQL && } - {bottomBlock === EXCEPTIONS && } - {bottomBlock === INSPECTOR && } -
- )} - {!fullView && !isMultiview && !isClickmap ? ( - - ) : null} -
- ); -} - -export default connect( - (state) => { - const isAssist = window.location.pathname.includes('/assist/'); - return { - fullscreen: state.getIn(['components', 'player', 'fullscreen']), - nextId: state.getIn(['sessions', 'nextId']), - sessionId: state.getIn(['sessions', 'current']).sessionId, - bottomBlock: state.getIn(['components', 'player', 'bottomBlock']), - closedLive: - !!state.getIn(['sessions', 'errors']) || - (isAssist && !state.getIn(['sessions', 'current']).live), - }; - }, - { - fullscreenOff, - updateLastPlayedSession, - } -)(Player); diff --git a/frontend/app/components/Session_/Player/index.js b/frontend/app/components/Session_/Player/index.js deleted file mode 100644 index 2b570d433..000000000 --- a/frontend/app/components/Session_/Player/index.js +++ /dev/null @@ -1 +0,0 @@ -export { default } from './Player'; diff --git a/frontend/app/components/Session_/PlayerBlockHeader.tsx b/frontend/app/components/Session_/PlayerBlockHeader.tsx deleted file mode 100644 index cd19712c7..000000000 --- a/frontend/app/components/Session_/PlayerBlockHeader.tsx +++ /dev/null @@ -1,185 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import { withRouter } from 'react-router-dom'; -import { - sessions as sessionsRoute, - assist as assistRoute, - liveSession as liveSessionRoute, - withSiteId, - multiview, -} from 'App/routes'; -import { BackLink, Link, Icon } from 'UI'; -import { toggleFavorite, setSessionPath } from 'Duck/sessions'; -import cn from 'classnames'; -import SessionMetaList from 'Shared/SessionItem/SessionMetaList'; -import UserCard from './EventsBlock/UserCard'; -import Tabs from 'Components/Session/Tabs'; -import { PlayerContext } from 'App/components/Session/playerContext'; -import { observer } from 'mobx-react-lite'; -import { useStore } from 'App/mstore' -import stl from './playerBlockHeader.module.css'; -import AssistActions from '../Assist/components/AssistActions'; -import AssistTabs from '../Assist/components/AssistTabs'; - -const SESSIONS_ROUTE = sessionsRoute(); -const ASSIST_ROUTE = assistRoute(); - -// TODO props -function PlayerBlockHeader(props: any) { - const [hideBack, setHideBack] = React.useState(false); - const { player, store } = React.useContext(PlayerContext); - const { assistMultiviewStore } = useStore(); - - const { width, height, showEvents } = store.get(); - - const { - session, - fullscreen, - metaList, - closedLive = false, - siteId, - isAssist, - setActiveTab, - activeTab, - location, - history, - sessionPath, - isMultiview, - } = props; - - React.useEffect(() => { - const queryParams = new URLSearchParams(location.search); - setHideBack(queryParams.has('iframe') && queryParams.get('iframe') === 'true'); - }, []); - - const backHandler = () => { - if ( - sessionPath.pathname === history.location.pathname || - sessionPath.pathname.includes('/session/') || - isAssist - ) { - history.push(withSiteId(isAssist ? ASSIST_ROUTE : SESSIONS_ROUTE, siteId)); - } else { - history.push( - sessionPath ? sessionPath.pathname + sessionPath.search : withSiteId(SESSIONS_ROUTE, siteId) - ); - } - }; - - const { sessionId, userId, userNumericHash, live, metadata, isCallActive, agentIds } = session; - let _metaList = Object.keys(metadata) - .filter((i) => metaList.includes(i)) - .map((key) => { - const value = metadata[key]; - return { label: key, value }; - }); - - const TABS = [props.tabs.EVENTS, props.tabs.CLICKMAP].map((tab) => ({ - text: tab, - key: tab, - })); - - const openGrid = () => { - const sessionIdQuery = encodeURIComponent(assistMultiviewStore.sessions.map((s) => s.sessionId).join(',')); - return history.push(withSiteId(multiview(sessionIdQuery), siteId)); - }; - - return ( -
-
- {!hideBack && ( -
(assistMultiviewStore.sessions.length > 1 || isMultiview ? openGrid() : backHandler())} - > - {assistMultiviewStore.sessions.length > 1 || isMultiview ? ( - <> -
- -
- - Close - -
- - ) : ( - <> - {/* @ts-ignore TODO */} - -
- - )} -
- )} - - {isAssist && } - -
- {live && !isAssist && ( - <> -
- - This Session is Now Continuing Live - -
- {_metaList.length > 0 &&
} - - )} - - {_metaList.length > 0 && ( -
- -
- )} - - {isAssist && ( - // @ts-ignore TODO - - )} -
-
- {!isAssist && ( -
- { - if (activeTab === tab) { - setActiveTab(''); - player.toggleEvents(); - } else { - setActiveTab(tab); - !showEvents && player.toggleEvents(); - } - }} - border={false} - /> -
- )} -
- ); -} - -const PlayerHeaderCont = connect( - (state: any) => { - const isAssist = window.location.pathname.includes('/assist/'); - const session = state.getIn(['sessions', 'current']); - - return { - isAssist, - session, - sessionPath: state.getIn(['sessions', 'sessionPath']), - local: state.getIn(['sessions', 'timezone']), - funnelRef: state.getIn(['funnels', 'navRef']), - siteId: state.getIn(['site', 'siteId']), - metaList: state.getIn(['customFields', 'list']).map((i: any) => i.key), - closedLive: !!state.getIn(['sessions', 'errors']) || (isAssist && !session.live), - }; - }, - { - toggleFavorite, - setSessionPath, - } -)(observer(PlayerBlockHeader)); - -export default withRouter(PlayerHeaderCont);