fix(ui): fix jump to first visual element
This commit is contained in:
parent
3588eddfd3
commit
b5600605a7
3 changed files with 12 additions and 14 deletions
|
|
@ -74,21 +74,21 @@ function WebPlayer(props: any) {
|
|||
}
|
||||
}, [session.events, session.errors, contextValue.player])
|
||||
|
||||
const isPlayerReady = contextValue.store?.get().ready
|
||||
const { ready: isPlayerReady, firstVisualEvent: visualOffset } = contextValue.store?.get() || {}
|
||||
|
||||
React.useEffect(() => {
|
||||
if (showNoteModal) {
|
||||
contextValue.player.pause()
|
||||
}
|
||||
|
||||
if (activeTab === '' && !showNoteModal && isPlayerReady) {
|
||||
contextValue.player && contextValue.player.play()
|
||||
if (activeTab === '' && !showNoteModal && isPlayerReady && contextValue.player) {
|
||||
contextValue.player.play()
|
||||
|
||||
if (visualOffset !== 0) {
|
||||
contextValue.player.jump(visualOffset)
|
||||
}
|
||||
}
|
||||
const visualOffset = contextValue.player?.checkVisualOffset?.() || 0
|
||||
if (visualOffset !== 0) {
|
||||
contextValue.player.jump(visualOffset)
|
||||
}
|
||||
}, [activeTab, isPlayerReady, showNoteModal])
|
||||
}, [activeTab, isPlayerReady, showNoteModal, visualOffset])
|
||||
|
||||
// LAYOUT (TODO: local layout state - useContext or something..)
|
||||
useEffect(
|
||||
|
|
|
|||
|
|
@ -65,6 +65,7 @@ export interface State extends ScreenState, ListsState {
|
|||
|
||||
ready: boolean,
|
||||
lastMessageTime: number,
|
||||
firstVisualEvent: number,
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -91,6 +92,7 @@ export default class MessageManager {
|
|||
cssLoading: false,
|
||||
ready: false,
|
||||
lastMessageTime: 0,
|
||||
firstVisualEvent: 0,
|
||||
}
|
||||
|
||||
private locationEventManager: ListWalker<any>/*<LocationEvent>*/ = new ListWalker();
|
||||
|
|
@ -116,7 +118,7 @@ export default class MessageManager {
|
|||
private sessionStart: number;
|
||||
private navigationStartOffset: number = 0;
|
||||
private lastMessageTime: number = 0;
|
||||
public firstVisualEvent: number = 0;
|
||||
private firstVisualEventSet = false;
|
||||
|
||||
constructor(
|
||||
private readonly session: any /*Session*/,
|
||||
|
|
@ -468,7 +470,7 @@ export default class MessageManager {
|
|||
default:
|
||||
switch (msg.tp) {
|
||||
case MType.CreateDocument:
|
||||
if (this.firstVisualEvent === 0) this.firstVisualEvent = msg.time;
|
||||
if (!this.firstVisualEventSet) this.state.update({ firstVisualEvent: msg.time });
|
||||
this.windowNodeCounter.reset();
|
||||
this.performanceTrackManager.setCurrentNodesCount(this.windowNodeCounter.count);
|
||||
break;
|
||||
|
|
|
|||
|
|
@ -146,10 +146,6 @@ export default class WebPlayer extends Player {
|
|||
this.screen.cursor.showTag(name)
|
||||
}
|
||||
|
||||
checkVisualOffset = () => {
|
||||
return this.messageManager.firstVisualEvent
|
||||
}
|
||||
|
||||
clean = () => {
|
||||
super.clean()
|
||||
this.screen.clean()
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue