EBernhardson has uploaded a new change for review.
https://gerrit.wikimedia.org/r/180115
Change subject: TOC: Trigger the loadmore check after each load
..
TOC: Trigger the loadmore check after each load
The loadmore was setup to only re-trigger flow.scroll on the first
load, but we want it to fire any time the anchor is on screen. Not
doing this caused the toc behavior to stop loading more if the second
load was not enough to trigger a scrollbar. This is not likely to be
as much of an issue in prod when we increase the limit on the toc
query, but is an important edge case we might still see on browsers on
a portrait browser and such.
Change-Id: I8ecb1c417e6a378aeb582002e669ec288cc8d076
---
M modules/engine/components/board/features/flow-board-loadmore.js
1 file changed, 18 insertions(+), 20 deletions(-)
git pull ssh://gerrit.wikimedia.org:29418/mediawiki/extensions/Flow
refs/changes/15/180115/1
diff --git a/modules/engine/components/board/features/flow-board-loadmore.js
b/modules/engine/components/board/features/flow-board-loadmore.js
index eb219fd..bd8184c 100644
--- a/modules/engine/components/board/features/flow-board-loadmore.js
+++ b/modules/engine/components/board/features/flow-board-loadmore.js
@@ -330,29 +330,27 @@
this.$loadMoreNodes = this.$loadMoreNodes.add( $button );
// Make sure we didn't already bind to this element's scroll
previously
- if ( $scrollContainer.data( 'scrollIsBound' ) ) {
- return;
- }
- $scrollContainer.data( 'scrollIsBound', true );
+ if ( !$scrollContainer.data( 'scrollIsBound' ) ) {
+ $scrollContainer.data( 'scrollIsBound', true );
- // Bind the event for this
- if ( scrollTargetSelector === 'window' ) {
- this.on( 'windowScroll', function () {
-
_flowBoardComponentLoadMoreFeatureInfiniteScrollCheck.call( board,
$scrollContainer, $( window ) );
- } );
- } else {
- $target = $.findWithParent( $button,
scrollTargetSelector );
- $target.on( 'scroll.flow', $.throttle( 50, function () {
-
_flowBoardComponentLoadMoreFeatureInfiniteScrollCheck.call( board,
$scrollContainer, $target );
- } ) );
-
- // Auto-trigger to keep loading if the new button is
already in the viewport
- if ( $button.is( ':visible' ) ) {
- setTimeout( function () {
- $button.parents().trigger(
'scroll.flow' );
- }, 100 );
+ // Bind the event for this
+ if ( scrollTargetSelector === 'window' ) {
+ this.on( 'windowScroll', function () {
+
_flowBoardComponentLoadMoreFeatureInfiniteScrollCheck.call( board,
$scrollContainer, $( window ) );
+ } );
+ } else {
+ $target = $.findWithParent( $button,
scrollTargetSelector );
+ $target.on( 'scroll.flow', $.throttle( 50,
function () {
+
_flowBoardComponentLoadMoreFeatureInfiniteScrollCheck.call( board,
$scrollContainer, $target );
+ } ) );
}
}
+ // Auto-trigger to keep loading if the new button is already in
the viewport
+ if ( scrollTargetSelector !== 'window' && $button.is(
':visible' ) ) {
+ setTimeout( function () {
+ $button.trigger( 'scroll.flow' );
+ }, 100 );
+ }
}
FlowBoardComponentLoadMoreFeatureMixin.UI.events.loadHandlers.loadMore
= flowBoardComponentLoadMoreFeatureElementLoadCallback;
--
To view, visit https://gerrit.wikimedia.org/r/180115
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8ecb1c417e6a378aeb582002e669ec288cc8d076
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/extensions/Flow
Gerrit-Branch: master
Gerrit-Owner: EBernhardson
___
MediaWiki-commits mailing list
MediaWiki-commits@lists.wikimedia.org
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits