@@ -5,10 +5,12 @@ import { getDevice } from '../../shared/get-device.js';
55
66class PullToRefresh extends Framework7Class {
77 constructor ( app , el ) {
8+ const $el = $ ( el ) ;
9+ if ( $el [ 0 ] . f7PullToRefresh ) return $el [ 0 ] . f7PullToRefresh ;
10+
811 super ( { } , [ app ] ) ;
912 const ptr = this ;
1013 const device = getDevice ( ) ;
11- const $el = $ ( el ) ;
1214 const $preloaderEl = $el . find ( '.ptr-preloader' ) ;
1315
1416 ptr . $el = $el ;
@@ -27,7 +29,8 @@ class PullToRefresh extends Framework7Class {
2729 ptr . done = function done ( ) {
2830 const $transitionTarget = isMaterial ? $preloaderEl : $el ;
2931 const onTranstionEnd = ( e ) => {
30- if ( $ ( e . target ) . closest ( $preloaderEl ) . length ) return ;
32+ // Material Design platform currently does not support bottom preloader animation.
33+ if ( ! isMaterial && $ ( e . target ) . closest ( $preloaderEl ) . length ) return ;
3134 $el . removeClass ( 'ptr-transitioning ptr-pull-up ptr-pull-down ptr-closing' ) ;
3235 $el . trigger ( 'ptr:done' ) ;
3336 ptr . emit ( 'local::done ptrDone' , $el [ 0 ] ) ;
@@ -204,7 +207,7 @@ class PullToRefresh extends Framework7Class {
204207 ( ( ! ptr . bottom && ptrScrollableEl . scrollTop > 0 ) ||
205208 ( ptr . bottom &&
206209 ptrScrollableEl . scrollTop <
207- ptrScrollableEl . scrollHeight - ptrScrollableEl . offsetHeight ) )
210+ ptrScrollableEl . scrollHeight - ptrScrollableEl . offsetHeight ) )
208211 ) {
209212 targetIsScrollable = true ;
210213 }
@@ -453,7 +456,7 @@ class PullToRefresh extends Framework7Class {
453456 ( ( ! ptr . bottom && ptrScrollableEl . scrollTop > 0 ) ||
454457 ( ptr . bottom &&
455458 ptrScrollableEl . scrollTop <
456- ptrScrollableEl . scrollHeight - ptrScrollableEl . offsetHeight ) )
459+ ptrScrollableEl . scrollHeight - ptrScrollableEl . offsetHeight ) )
457460 ) {
458461 targetIsScrollable = true ;
459462 }
0 commit comments