From 63c1dead0d723272488f6b4be8c5a5e9e34a0354 Mon Sep 17 00:00:00 2001 From: Robert Wagner Date: Sun, 17 Jul 2022 21:53:04 -0400 Subject: [PATCH] Fix scroll to row --- addon/components/lt-body.hbs | 43 ++++++++++++++++++++++++++---------- addon/components/lt-body.js | 11 +++------ 2 files changed, 34 insertions(+), 20 deletions(-) diff --git a/addon/components/lt-body.hbs b/addon/components/lt-body.hbs index 6fb9274e..11a286a4 100644 --- a/addon/components/lt-body.hbs +++ b/addon/components/lt-body.hbs @@ -3,10 +3,12 @@ {{if this.canSelect "can-select"}} {{if this.multiSelect "multi-select"}} {{if this.canExpand "can-expand"}}" - {{did-insert this.onRowsChange this.rows}} - {{did-update this.onRowsChange this.rows}} - {{did-insert this.scheduleScrolledToBottom this.rows this.isInViewport}} - {{did-update this.scheduleScrolledToBottom this.rows this.isInViewport}} + {{did-insert this.onRowsChange this.rows}} + {{did-update this.onRowsChange this.rows}} + {{did-insert this.scheduleScrolledToBottom this.rows this.isInViewport}} + {{did-update this.scheduleScrolledToBottom this.rows this.isInViewport}} + {{did-insert this.setupScrollOffset this.scrollTo this.scrollToRow}} + {{did-update this.setupScrollOffset this.scrollTo this.scrollToRow}} > {{#let (hash @@ -56,9 +58,16 @@ {{/vertical-collection}} {{yield (hash - loader=(component (ensure-safe-component lt.spanned-row) classes="lt-is-loading") - no-data=(component (ensure-safe-component lt.spanned-row) classes="lt-no-data") - expanded-row=(component (ensure-safe-component lt.spanned-row) visible=false) + loader=(component + (ensure-safe-component lt.spanned-row) + classes="lt-is-loading" + ) + no-data=(component + (ensure-safe-component lt.spanned-row) classes="lt-no-data" + ) + expanded-row=(component + (ensure-safe-component lt.spanned-row) visible=false + ) ) this.rows }} @@ -133,8 +142,12 @@ yield=row visible=row.expanded ) - loader=(component (ensure-safe-component lt.spanned-row) visible=false) - no-data=(component (ensure-safe-component lt.spanned-row) visible=false) + loader=(component + (ensure-safe-component lt.spanned-row) visible=false + ) + no-data=(component + (ensure-safe-component lt.spanned-row) visible=false + ) ) this.rows }} @@ -143,12 +156,18 @@ {{yield (hash loader=(component - (ensure-safe-component lt.spanned-row) classes="lt-is-loading" colspan=this.colspan + (ensure-safe-component lt.spanned-row) + classes="lt-is-loading" + colspan=this.colspan ) no-data=(component - (ensure-safe-component lt.spanned-row) classes="lt-no-data" colspan=this.colspan + (ensure-safe-component lt.spanned-row) + classes="lt-no-data" + colspan=this.colspan + ) + expanded-row=(component + (ensure-safe-component lt.spanned-row) visible=false ) - expanded-row=(component (ensure-safe-component lt.spanned-row) visible=false) ) this.rows }} diff --git a/addon/components/lt-body.js b/addon/components/lt-body.js index ec23b43b..e78d606a 100644 --- a/addon/components/lt-body.js +++ b/addon/components/lt-body.js @@ -348,11 +348,6 @@ export default Component.extend({ once(this, this._setupVirtualScrollbar); }, - didReceiveAttrs() { - this._super(...arguments); - this.setupScrollOffset(); - }, - destroy() { this._super(...arguments); this._cancelTimers(); @@ -371,7 +366,7 @@ export default Component.extend({ ); }), - setupScrollOffset() { + setupScrollOffset: action(function (element) { let { scrollTo, _scrollTo, scrollToRow, _scrollToRow } = this; let targetScrollOffset = null; @@ -390,7 +385,7 @@ export default Component.extend({ }); } else if (scrollToRow !== _scrollToRow) { if (scrollToRow instanceof Row) { - let rowElement = this.element.querySelector( + let rowElement = element.querySelector( `[data-row-id=${scrollToRow.get('rowId')}]` ); @@ -404,7 +399,7 @@ export default Component.extend({ hasReachedTargetScrollOffset: true, }); } - }, + }), checkTargetScrollOffset() { if (!this.hasReachedTargetScrollOffset) {