diff --git a/frontend/app/player/create.ts b/frontend/app/player/create.ts index a69d9710e..39114d7cb 100644 --- a/frontend/app/player/create.ts +++ b/frontend/app/player/create.ts @@ -2,10 +2,12 @@ import SimpleStore from './common/SimpleStore' import type { Store } from './common/types' import WebPlayer from './web/WebPlayer' +import WebLivePlayer from './web/WebLivePlayer' type WebState = typeof WebPlayer.INITIAL_STATE //? type WebPlayerStore = Store export type IWebPlayer = WebPlayer +export type IWebLivePlayer = WebLivePlayer export type IWebPlayerStore = WebPlayerStore export function createWebPlayer(session: Record, wrapStore?: (s:IWebPlayerStore) => IWebPlayerStore): [IWebPlayer, IWebPlayerStore] { @@ -16,12 +18,12 @@ export function createWebPlayer(session: Record, wrapStore?: (s:IWe store = wrapStore(store) } - const player = new WebPlayer(store, session, null, false) + const player = new WebPlayer(store, session, false) return [player, store] } -export function createLiveWebPlayer(session: Record, config: RTCIceServer[], wrapStore?: (s:IWebPlayerStore) => IWebPlayerStore): [IWebPlayer, IWebPlayerStore] { +export function createLiveWebPlayer(session: Record, config: RTCIceServer[], wrapStore?: (s:IWebPlayerStore) => IWebPlayerStore): [IWebLivePlayer, IWebPlayerStore] { let store: WebPlayerStore = new SimpleStore({ ...WebPlayer.INITIAL_STATE, }) @@ -29,6 +31,6 @@ export function createLiveWebPlayer(session: Record, config: RTCIce store = wrapStore(store) } - const player = new WebPlayer(store, session, config, true) + const player = new WebLivePlayer(store, session, config) return [player, store] } diff --git a/frontend/app/player/web/WebLivePlayer.ts b/frontend/app/player/web/WebLivePlayer.ts index d7b707b1c..8cd41ab15 100644 --- a/frontend/app/player/web/WebLivePlayer.ts +++ b/frontend/app/player/web/WebLivePlayer.ts @@ -1,23 +1,15 @@ -// import WebPlayer from './WebPlayer' -// import AssistManager from './assist/AssistManager' +import type { Store } from '../common/types' + +import WebPlayer from './WebPlayer' +import AssistManager from './assist/AssistManager' -// export default class WebLivePlayer extends WebPlayer { -// assistManager: AssistManager // public so far -// constructor(private wpState: Store, session, config: RTCIceServer[]) { -// super(wpState) -// this.assistManager = new AssistManager(session, this.messageManager, config, wpState) -// const endTime = !live && session.duration.valueOf() -// wpState.update({ -// //@ts-ignore -// initialized: true, -// //@ts-ignore -// session, - -// live: true, -// livePlay: true, -// }) +export default class WebLivePlayer extends WebPlayer { + assistManager: AssistManager // public so far + constructor(wpState: Store, session:any, config: RTCIceServer[]) { + super(wpState, session, true) -// this.assistManager.connect(session.agentToken) -// } -// } \ No newline at end of file + this.assistManager = new AssistManager(session, this.messageManager, this.screen, config, wpState) + this.assistManager.connect(session.agentToken) + } +} \ No newline at end of file diff --git a/frontend/app/player/web/WebPlayer.ts b/frontend/app/player/web/WebPlayer.ts index bd80c1189..adefc65be 100644 --- a/frontend/app/player/web/WebPlayer.ts +++ b/frontend/app/player/web/WebPlayer.ts @@ -23,14 +23,13 @@ export default class WebPlayer extends Player { liveTimeTravel: false, } - private readonly screen: Screen private readonly inspectorController: InspectorController + protected readonly screen: Screen protected readonly messageManager: MessageManager - assistManager: AssistManager // public so far private targetMarker: TargetMarker - constructor(private wpState: Store, session, config: RTCIceServer[], live: boolean) { + constructor(private wpState: Store, session: any, live: boolean) { let initialLists = live ? {} : { event: session.events.toJSON(), stack: session.stackEvents.toJSON(), @@ -55,10 +54,8 @@ export default class WebPlayer extends Player { this.inspectorController = new InspectorController(screen) - const endTime = !live && session.duration.valueOf() + const endTime = session.duration?.valueOf() || 0 wpState.update({ - //@ts-ignore - initialized: true, //@ts-ignore session, @@ -67,11 +64,6 @@ export default class WebPlayer extends Player { endTime, // : 0, }) - // TODO: separate LiveWebPlayer - this.assistManager = new AssistManager(session, this.messageManager, screen, config, wpState) - if (live) { - this.assistManager.connect(session.agentToken) - } } attach = (parent: HTMLElement) => {