refactor(player):initialize assistManager for live only

This commit is contained in:
Alex Kaminskii 2022-12-26 21:30:00 +01:00
parent d2923a5cb8
commit 5cc74df0af
3 changed files with 20 additions and 34 deletions

View file

@ -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<WebState>
export type IWebPlayer = WebPlayer
export type IWebLivePlayer = WebLivePlayer
export type IWebPlayerStore = WebPlayerStore
export function createWebPlayer(session: Record<string, any>, wrapStore?: (s:IWebPlayerStore) => IWebPlayerStore): [IWebPlayer, IWebPlayerStore] {
@ -16,12 +18,12 @@ export function createWebPlayer(session: Record<string, any>, 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<string, any>, config: RTCIceServer[], wrapStore?: (s:IWebPlayerStore) => IWebPlayerStore): [IWebPlayer, IWebPlayerStore] {
export function createLiveWebPlayer(session: Record<string, any>, config: RTCIceServer[], wrapStore?: (s:IWebPlayerStore) => IWebPlayerStore): [IWebLivePlayer, IWebPlayerStore] {
let store: WebPlayerStore = new SimpleStore<WebState>({
...WebPlayer.INITIAL_STATE,
})
@ -29,6 +31,6 @@ export function createLiveWebPlayer(session: Record<string, any>, config: RTCIce
store = wrapStore(store)
}
const player = new WebPlayer(store, session, config, true)
const player = new WebLivePlayer(store, session, config)
return [player, store]
}

View file

@ -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<MMState & PlayerState>, 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,
export default class WebLivePlayer extends WebPlayer {
assistManager: AssistManager // public so far
constructor(wpState: Store<typeof WebPlayer.INITIAL_STATE>, session:any, config: RTCIceServer[]) {
super(wpState, session, true)
// live: true,
// livePlay: true,
// })
// this.assistManager.connect(session.agentToken)
// }
// }
this.assistManager = new AssistManager(session, this.messageManager, this.screen, config, wpState)
this.assistManager.connect(session.agentToken)
}
}

View file

@ -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<typeof WebPlayer.INITIAL_STATE>, session, config: RTCIceServer[], live: boolean) {
constructor(private wpState: Store<typeof WebPlayer.INITIAL_STATE>, 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) => {