@@ -10,6 +10,7 @@ import { tracked } from '@glimmer/tracking';
1010import { guidFor } from '@ember/object/internals' ;
1111import { service } from '@ember/service' ;
1212import { modifier } from 'ember-modifier' ;
13+ import { schedule } from '@ember/runloop' ;
1314import HdsAdvancedTableTableModel from './models/table.ts' ;
1415
1516import type Owner from '@ember/owner' ;
@@ -443,28 +444,49 @@ export default class HdsAdvancedTable extends Component<HdsAdvancedTableSignatur
443444 return classes . join ( ' ' ) ;
444445 }
445446
446- private _syncTableData =
447- modifier < HdsAdvancedTableSyncTableDataModifierSignature > (
447+ private _syncTableData = ( ( ) => {
448+ let isFirstRun = true ;
449+
450+ return modifier < HdsAdvancedTableSyncTableDataModifierSignature > (
448451 ( _element , _positional , { columns, model, sortBy, sortOrder } ) => {
449- this . _tableModel . setupData ( {
450- columns,
451- model,
452- sortBy,
453- sortOrder,
452+ // eslint-disable-next-line ember/no-runloop
453+ schedule ( 'afterRender' , ( ) : void => {
454+ if ( isFirstRun ) {
455+ isFirstRun = false ;
456+ return ;
457+ }
458+ this . _tableModel . setupData ( {
459+ columns,
460+ model,
461+ sortBy,
462+ sortOrder,
463+ } ) ;
454464 } ) ;
455465 }
456466 ) ;
467+ } ) ( ) ;
457468
458- private _syncColumnOrder =
459- modifier < HdsAdvancedTableSyncColumnOrderModifierSignature > (
460- ( _element , _positional , { columnOrder } ) => {
461- if ( columnOrder === undefined ) {
462- return ;
463- }
469+ private _syncColumnOrder = ( ( ) => {
470+ let isFirstRun = true ;
464471
465- this . _tableModel . columnOrder = columnOrder ;
472+ return modifier < HdsAdvancedTableSyncColumnOrderModifierSignature > (
473+ ( _element , _positional , { columnOrder } ) => {
474+ // eslint-disable-next-line ember/no-runloop
475+ schedule ( 'afterRender' , ( ) : void => {
476+ if ( isFirstRun ) {
477+ isFirstRun = false ;
478+ return ;
479+ }
480+
481+ if ( columnOrder === undefined ) {
482+ return ;
483+ }
484+
485+ this . _tableModel . columnOrder = columnOrder ;
486+ } ) ;
466487 }
467488 ) ;
489+ } ) ( ) ;
468490
469491 private _registerGridElement = modifier ( ( element : HTMLDivElement ) => {
470492 this . _tableModel . gridElement = element ;
0 commit comments