mirror of
https://github.com/wekan/wekan.git
synced 2026-03-13 17:06:13 +01:00
Replace BlazeComponent mixins with standalone utility modules
Delete the old Mixins global and BlazeComponent-based InfiniteScrolling mixin. Add standalone replacements: - client/lib/infiniteScrolling.js: plain scroll-based pagination helper - client/lib/currentCard.js: centralized current card resolution - client/components/forms/datepicker.js: extracted date picker logic
This commit is contained in:
parent
2848b1a38a
commit
3b6f6fa80a
5 changed files with 180 additions and 35 deletions
47
client/lib/infiniteScrolling.js
Normal file
47
client/lib/infiniteScrolling.js
Normal file
|
|
@ -0,0 +1,47 @@
|
|||
const PEAK_ANTICIPATION = 200;
|
||||
|
||||
/**
|
||||
* Infinite scrolling utility to replace the BlazeComponent mixin.
|
||||
*
|
||||
* Usage in a Template:
|
||||
* Template.myTemplate.onCreated(function () {
|
||||
* this.infiniteScrolling = new InfiniteScrolling();
|
||||
* });
|
||||
*
|
||||
* The scroll event must be wired in Template.events:
|
||||
* 'scroll .my-container'(event, tpl) {
|
||||
* tpl.infiniteScrolling.checkScrollPosition(event.currentTarget, () => {
|
||||
* tpl.loadNextPage();
|
||||
* });
|
||||
* },
|
||||
*
|
||||
* Or for components that delegate to a child for loading:
|
||||
* tpl.infiniteScrolling.checkScrollPosition(event.currentTarget, () => {
|
||||
* activitiesComponent.loadNextPage();
|
||||
* });
|
||||
*/
|
||||
export class InfiniteScrolling {
|
||||
constructor() {
|
||||
this._nextPeak = Infinity;
|
||||
}
|
||||
|
||||
setNextPeak(v) {
|
||||
this._nextPeak = v;
|
||||
}
|
||||
|
||||
getNextPeak() {
|
||||
return this._nextPeak;
|
||||
}
|
||||
|
||||
resetNextPeak() {
|
||||
this._nextPeak = Infinity;
|
||||
}
|
||||
|
||||
checkScrollPosition(domElement, reachNextPeakCallback) {
|
||||
let altitude = domElement.scrollTop + domElement.offsetHeight;
|
||||
altitude += PEAK_ANTICIPATION;
|
||||
if (altitude >= this._nextPeak) {
|
||||
reachNextPeakCallback();
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue