From ac6ba2faaa93c2d52398a25b947d297cb05819aa Mon Sep 17 00:00:00 2001 From: Edouard Misset Date: Fri, 28 Aug 2026 14:35:06 +0200 Subject: [PATCH 1/2] fix: fix initial load animation sequencing --- addon/components/hyper-table-v2/index.ts | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/addon/components/hyper-table-v2/index.ts b/addon/components/hyper-table-v2/index.ts index 072edc54..9a2f1407 100644 --- a/addon/components/hyper-table-v2/index.ts +++ b/addon/components/hyper-table-v2/index.ts @@ -84,10 +84,11 @@ export default class HyperTableV2 extends Component { constructor(owner: unknown, args: HyperTableV2Args) { super(owner, args); args.handler.fetchColumnDefinitions(); + this.activateInitialLoadAnimationIfNeeded(); args.handler.fetchColumns().then(() => { this.initialFetchColumnsDone = true; args.handler.fetchRows().finally(() => { - this.activateInitialLoadAnimationIfNeeded(); + this.finalizeInitialLoadAnimation(); }); this.computeScrollableTable(); }); @@ -280,12 +281,19 @@ export default class HyperTableV2 extends Component { return; } - if (this.args.handler.communicationError || this.args.handler.rows.length === 0) { + this.initialLoadAnimationPlayed = true; + this.initialLoadAnimationActive = true; + } + + private finalizeInitialLoadAnimation(): void { + if (!this.initialLoadAnimationActive || !this.initialLoadAnimation) { return; } - this.initialLoadAnimationPlayed = true; - this.initialLoadAnimationActive = true; + if (this.args.handler.communicationError || this.args.handler.rows.length === 0) { + this.initialLoadAnimationActive = false; + return; + } const rowsAnimationWindowMs = Math.max(this.args.handler.rows.length - 1, 0) * this.initialLoadAnimation.staggerMs; const activeDurationMs = From 23f56f0a9ad13b7e7295359ad6d07e95def3a2ce Mon Sep 17 00:00:00 2001 From: Edouard Misset Date: Mon, 31 Aug 2026 12:28:55 +0200 Subject: [PATCH 2/2] fix: keep animation guard non-reactive --- addon/components/hyper-table-v2/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/addon/components/hyper-table-v2/index.ts b/addon/components/hyper-table-v2/index.ts index 9a2f1407..edff274d 100644 --- a/addon/components/hyper-table-v2/index.ts +++ b/addon/components/hyper-table-v2/index.ts @@ -75,8 +75,8 @@ export default class HyperTableV2 extends Component { @tracked scrollableTable: boolean = false; @tracked initialFetchColumnsDone: boolean = false; @tracked initialLoadAnimationActive: boolean = false; - @tracked initialLoadAnimationPlayed: boolean = false; + private initialLoadAnimationPlayed: boolean = false; private initialLoadAnimationTimeout?: number; declare private hypertableInstanceID: string;