fix(ui): fix player automatic jump and start issues
This commit is contained in:
parent
14efb62e68
commit
d890a584e5
2 changed files with 19 additions and 12 deletions
|
|
@ -57,11 +57,7 @@ function WebPlayer(props: any) {
|
|||
}
|
||||
})
|
||||
|
||||
const jumpToTime = props.query.get('jumpto');
|
||||
const freeze = props.query.get('freeze')
|
||||
if (jumpToTime) {
|
||||
WebPlayerInst.jump(parseInt(jumpToTime));
|
||||
}
|
||||
if (freeze) {
|
||||
WebPlayerInst.freeze()
|
||||
}
|
||||
|
|
@ -73,22 +69,29 @@ function WebPlayer(props: any) {
|
|||
}
|
||||
}, [session.events, session.errors, contextValue.player])
|
||||
|
||||
const { ready: isPlayerReady, firstVisualEvent: visualOffset } = contextValue.store?.get() || {}
|
||||
const { ready: isPlayerReady, firstVisualEvent: visualOffset, messagesProcessed } = contextValue.store?.get() || {}
|
||||
|
||||
React.useEffect(() => {
|
||||
if (showNoteModal) {
|
||||
if (showNoteModal || activeTab !== '') {
|
||||
contextValue.player.pause()
|
||||
}
|
||||
|
||||
if (activeTab === '' && !showNoteModal && isPlayerReady && contextValue.player) {
|
||||
contextValue.player.play()
|
||||
if (activeTab === '' && !showNoteModal && messagesProcessed && contextValue.player) {
|
||||
const jumpToTime = props.query.get('jumpto');
|
||||
const shouldAdjustOffset = visualOffset !== 0 && !visuallyAdjusted
|
||||
|
||||
if (visualOffset !== 0 && !visuallyAdjusted) {
|
||||
contextValue.player.jump(visualOffset)
|
||||
setAdjusted(true)
|
||||
if (jumpToTime || shouldAdjustOffset) {
|
||||
if (jumpToTime > visualOffset) {
|
||||
contextValue.player.jump(parseInt(jumpToTime));
|
||||
} else {
|
||||
contextValue.player.jump(visualOffset)
|
||||
setAdjusted(true)
|
||||
}
|
||||
}
|
||||
|
||||
contextValue.player.play()
|
||||
}
|
||||
}, [activeTab, isPlayerReady, showNoteModal, visualOffset])
|
||||
}, [activeTab, showNoteModal, visualOffset, messagesProcessed])
|
||||
|
||||
// LAYOUT (TODO: local layout state - useContext or something..)
|
||||
useEffect(
|
||||
|
|
|
|||
|
|
@ -66,6 +66,7 @@ export interface State extends ScreenState, ListsState {
|
|||
ready: boolean,
|
||||
lastMessageTime: number,
|
||||
firstVisualEvent: number,
|
||||
messagesProcessed: boolean,
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -93,6 +94,7 @@ export default class MessageManager {
|
|||
ready: false,
|
||||
lastMessageTime: 0,
|
||||
firstVisualEvent: 0,
|
||||
messagesProcessed: false,
|
||||
}
|
||||
|
||||
private locationEventManager: ListWalker<any>/*<LocationEvent>*/ = new ListWalker();
|
||||
|
|
@ -207,11 +209,13 @@ export default class MessageManager {
|
|||
}
|
||||
private onFileReadFinally = () => {
|
||||
this.waitingForFiles = false
|
||||
this.state.update({ messagesProcessed: true })
|
||||
// this.setMessagesLoading(false)
|
||||
// this.state.update({ filesLoaded: true })
|
||||
}
|
||||
|
||||
async loadMessages(isClickmap: boolean = false) {
|
||||
this.state.update({ messagesProcessed: false })
|
||||
this.setMessagesLoading(true)
|
||||
// TODO: reusable decryptor instance
|
||||
const createNewParser = (shouldDecrypt = true, file?: string) => {
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue