From b0c74bb327df183f854d7fd266abfacb5bffbbd5 Mon Sep 17 00:00:00 2001 From: Alex Kaminskii Date: Wed, 4 Jan 2023 14:09:39 +0100 Subject: [PATCH] refactor(player):ISP on StyleManager setLoader --- frontend/app/player/web/MessageManager.ts | 10 ++++------ frontend/app/player/web/WebLivePlayer.ts | 2 +- frontend/app/player/web/managers/DOM/DOMManager.ts | 4 ++-- frontend/app/player/web/managers/DOM/StylesManager.ts | 6 +++--- frontend/app/player/web/managers/PagesManager.ts | 8 ++++++-- 5 files changed, 16 insertions(+), 14 deletions(-) diff --git a/frontend/app/player/web/MessageManager.ts b/frontend/app/player/web/MessageManager.ts index 0c52350d4..b2410f6cd 100644 --- a/frontend/app/player/web/MessageManager.ts +++ b/frontend/app/player/web/MessageManager.ts @@ -123,7 +123,10 @@ export default class MessageManager { private readonly screen: Screen, initialLists?: Partial ) { - this.pagesManager = new PagesManager(screen, this.session.isMobile, this) + this.pagesManager = new PagesManager(screen, this.session.isMobile, cssLoading => { + screen.displayFrame(!cssLoading) + state.update({ cssLoading }) + }) this.mouseMoveManager = new MouseMoveManager(screen) this.sessionStart = this.session.startedAt @@ -482,11 +485,6 @@ export default class MessageManager { this.state.update({ messagesLoading }); } - setCSSLoading(cssLoading: boolean) { - this.screen.displayFrame(!cssLoading); - this.state.update({ cssLoading }); - } - private setSize({ height, width }: { height: number, width: number }) { this.screen.scale({ height, width }); this.state.update({ width, height }); diff --git a/frontend/app/player/web/WebLivePlayer.ts b/frontend/app/player/web/WebLivePlayer.ts index 87e88225a..81f1c2178 100644 --- a/frontend/app/player/web/WebLivePlayer.ts +++ b/frontend/app/player/web/WebLivePlayer.ts @@ -28,7 +28,7 @@ export default class WebLivePlayer extends WebPlayer { this.assistManager = new AssistManager( session, - f => this.messageManager.setCSSLoading(f), + f => this.messageManager.setMessagesLoading(f), (msg, idx) => { this.incomingMessages.push(msg) if (!this.historyFileIsLoading) { diff --git a/frontend/app/player/web/managers/DOM/DOMManager.ts b/frontend/app/player/web/managers/DOM/DOMManager.ts index d0005352c..e47a803fd 100644 --- a/frontend/app/player/web/managers/DOM/DOMManager.ts +++ b/frontend/app/player/web/managers/DOM/DOMManager.ts @@ -56,10 +56,10 @@ export default class DOMManager extends ListWalker { private readonly screen: Screen, private readonly isMobile: boolean, public readonly time: number, - mm: MessageManager, + setCssLoading: ConstructorParameters[1], ) { super() - this.stylesManager = new StylesManager(screen, mm) + this.stylesManager = new StylesManager(screen, setCssLoading) } append(m: Message): void { diff --git a/frontend/app/player/web/managers/DOM/StylesManager.ts b/frontend/app/player/web/managers/DOM/StylesManager.ts index 5cffa9be9..c38ea0281 100644 --- a/frontend/app/player/web/managers/DOM/StylesManager.ts +++ b/frontend/app/player/web/managers/DOM/StylesManager.ts @@ -24,7 +24,7 @@ export default class StylesManager { private linkLoadPromises: Array> = []; private skipCSSLinks: Array = []; // should be common for all pages - constructor(private readonly screen: Screen, private readonly mm: MessageManager) {} + constructor(private readonly screen: Screen, private readonly setLoading: (flag: boolean) => void) {} reset():void { this.linkLoadingCount = 0; @@ -38,7 +38,7 @@ export default class StylesManager { const promise = new Promise((resolve) => { if (this.skipCSSLinks.includes(value)) resolve(); this.linkLoadingCount++; - this.mm.setCSSLoading(true); + this.setLoading(true); const addSkipAndResolve = () => { this.skipCSSLinks.push(value); // watch out resolve() @@ -57,7 +57,7 @@ export default class StylesManager { clearTimeout(timeoutId); this.linkLoadingCount--; if (this.linkLoadingCount === 0) { - this.mm.setCSSLoading(false); + this.setLoading(false); } }); this.linkLoadPromises.push(promise); diff --git a/frontend/app/player/web/managers/PagesManager.ts b/frontend/app/player/web/managers/PagesManager.ts index e4248f2ab..35d47a670 100644 --- a/frontend/app/player/web/managers/PagesManager.ts +++ b/frontend/app/player/web/managers/PagesManager.ts @@ -10,14 +10,18 @@ import DOMManager from './DOM/DOMManager'; export default class PagesManager extends ListWalker { private currentPage: DOMManager | null = null - constructor(private screen: Screen, private isMobile: boolean, private mm: MessageManager) { super() } + constructor( + private screen: Screen, + private isMobile: boolean, + private setCssLoading: ConstructorParameters[3], +) { super() } /* Assumed that messages added in a correct time sequence. */ appendMessage(m: Message): void { if (m.tp === MType.CreateDocument) { - super.append(new DOMManager(this.screen, this.isMobile, m.time, this.mm)) + super.append(new DOMManager(this.screen, this.isMobile, m.time, this.setCssLoading)) } if (this.last === null) { // Log wrong