From e92bfe3cfe5ce2818d6557d462844392e8f612e4 Mon Sep 17 00:00:00 2001 From: nick-delirium Date: Fri, 14 Mar 2025 17:06:36 +0100 Subject: [PATCH] ui: fix efs file replay --- frontend/app/player/web/MessageLoader.ts | 12 +++++++----- frontend/app/player/web/MessageManager.ts | 1 + 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/frontend/app/player/web/MessageLoader.ts b/frontend/app/player/web/MessageLoader.ts index c8db37c4b..5dec14ba8 100644 --- a/frontend/app/player/web/MessageLoader.ts +++ b/frontend/app/player/web/MessageLoader.ts @@ -343,10 +343,6 @@ export default class MessageLoader { const efsDomFilePromise = requestEFSDom(this.session.sessionId); const efsDevtoolsFilePromise = requestEFSDevtools(this.session.sessionId); - const [domData, devtoolsData] = await Promise.allSettled([ - efsDomFilePromise, - efsDevtoolsFilePromise, - ]); const domParser = this.createNewParser( false, this.processMessages, @@ -357,6 +353,11 @@ export default class MessageLoader { this.processMessages, 'devtoolsEFS', ); + const [domData, devtoolsData] = await Promise.allSettled([ + efsDomFilePromise, + efsDevtoolsFilePromise, + ]); + const parseDomPromise: Promise = domData.status === 'fulfilled' ? domParser(domData.value) @@ -366,7 +367,8 @@ export default class MessageLoader { ? devtoolsParser(devtoolsData.value) : Promise.reject('No devtools file in EFS'); - await Promise.all([parseDomPromise, parseDevtoolsPromise]); + await Promise.allSettled([parseDomPromise, parseDevtoolsPromise]); + this.store.update({ domLoading: false, devtoolsLoading: false }); this.messageManager.onFileReadFinally(); this.messageManager.onFileReadSuccess(); }; diff --git a/frontend/app/player/web/MessageManager.ts b/frontend/app/player/web/MessageManager.ts index c70ce28fe..1a532ffcc 100644 --- a/frontend/app/player/web/MessageManager.ts +++ b/frontend/app/player/web/MessageManager.ts @@ -211,6 +211,7 @@ export default class MessageManager { public onFileReadFinally = () => { this.waitingForFiles = false; + this.setMessagesLoading(false); this.state.update({ messagesProcessed: true }); };