Skip to content

Commit

Permalink
fix ui: fix reader byte skipping, add pause on css loading screen (op…
Browse files Browse the repository at this point in the history
  • Loading branch information
nick-delirium authored Apr 8, 2024
1 parent de402d4 commit 3807ebb
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 4 deletions.
5 changes: 4 additions & 1 deletion frontend/app/components/Session/WebPlayer.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,10 @@ function WebPlayer(props: any) {
}
}, [session.sessionId]);

const { firstVisualEvent: visualOffset, messagesProcessed } = contextValue.store?.get() || {};
const { firstVisualEvent: visualOffset, messagesProcessed, tabStates, ready } = contextValue.store?.get() || {};
const cssLoading = ready && tabStates ? Object.values(tabStates).some(
({ cssLoading }) => cssLoading
) : true

React.useEffect(() => {
if (messagesProcessed && (session.events.length > 0 || session.errors.length > 0)) {
Expand Down
2 changes: 1 addition & 1 deletion frontend/app/player/mobile/IOSMessageManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -282,7 +282,7 @@ export default class IOSMessageManager implements IMessageManager {
setMessagesLoading = (messagesLoading: boolean) => {
this.screen.display(!messagesLoading);
// @ts-ignore idk
this.state.update({ messagesLoading, ready: !messagesLoading && !this.state.get().cssLoading });
this.state.update({ messagesLoading, ready: !messagesLoading });
};

private setSize({ height, width }: { height: number; width: number }) {
Expand Down
8 changes: 6 additions & 2 deletions frontend/app/player/web/MessageManager.ts
Original file line number Diff line number Diff line change
Expand Up @@ -63,6 +63,7 @@ export interface State extends ScreenState {
currentTab: string;
tabs: Set<string>;
tabChangeEvents: TabChangeEvent[];
sessionStart: number;
}

export const visualChanges = [
Expand Down Expand Up @@ -90,6 +91,7 @@ export default class MessageManager {
currentTab: '',
tabs: new Set(),
tabChangeEvents: [],
sessionStart: 0,
};

private clickManager: ListWalker<MouseClick> = new ListWalker();
Expand All @@ -116,6 +118,7 @@ export default class MessageManager {
) {
this.mouseMoveManager = new MouseMoveManager(screen);
this.sessionStart = this.session.startedAt;
state.update({ sessionStart: this.sessionStart });
this.activityManager = new ActivityManager(this.session.duration.milliseconds); // only if not-live
}

Expand Down Expand Up @@ -325,8 +328,9 @@ export default class MessageManager {
this.updateChangeEvents();
}
this.screen.display(!messagesLoading);
// @ts-ignore idk
this.state.update({ messagesLoading, ready: !messagesLoading && !this.state.get().cssLoading });
const cssLoading = Object.values(this.state.get().tabStates).some((tab) => tab.cssLoading);
const isReady = !messagesLoading && !cssLoading
this.state.update({ messagesLoading, ready: isReady});
};

decodeMessage(msg: Message) {
Expand Down
3 changes: 3 additions & 0 deletions frontend/app/player/web/messages/MFileReader.ts
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,9 @@ export default class MFileReader extends RawMessageReader {
* */
private readRawMessage(): RawMessage | null {
try {
if (!this.noIndexes) {
this.skip(8)
}
return super.readMessage()
} catch (e) {
this.logger.error("Read message error:", e)
Expand Down

0 comments on commit 3807ebb

Please sign in to comment.