fix(scroll): canOverscroll was set to false which prevented PTR from ever working

It’s still finishing the PTR before the complete is called though

References #5207
This commit is contained in:
Brandy Carney
2016-01-26 18:55:27 -05:00
parent adce1e5225
commit e4b200639e
3 changed files with 29 additions and 34 deletions

View File

@ -85,7 +85,7 @@ export class Refresher {
private _touchMoveListener; private _touchMoveListener;
private _touchEndListener; private _touchEndListener;
private _handleScrollListener; private _handleScrollListener;
isActive: boolean; isActive: boolean;
isDragging: boolean = false; isDragging: boolean = false;
isOverscrolling: boolean = false; isOverscrolling: boolean = false;
@ -94,7 +94,7 @@ export class Refresher {
ptrThreshold: number = 0; ptrThreshold: number = 0;
activated: boolean = false; activated: boolean = false;
scrollTime: number = 500; scrollTime: number = 500;
canOverscroll: boolean = false; canOverscroll: boolean = true;
startY; startY;
deltaY; deltaY;
scrollHost; scrollHost;
@ -103,18 +103,18 @@ export class Refresher {
showSpinner: boolean; showSpinner: boolean;
isRefreshing: boolean; isRefreshing: boolean;
isRefreshingTail: boolean; isRefreshingTail: boolean;
@Input() pullingIcon: string; @Input() pullingIcon: string;
@Input() pullingText: string; @Input() pullingText: string;
@Input() refreshingIcon: string; @Input() refreshingIcon: string;
@Input() refreshingText: string; @Input() refreshingText: string;
@Input() spinner: string; @Input() spinner: string;
@Output() pulling: EventEmitter<any> = new EventEmitter(); @Output() pulling: EventEmitter<any> = new EventEmitter();
@Output() refresh: EventEmitter<any> = new EventEmitter(); @Output() refresh: EventEmitter<any> = new EventEmitter();
@Output() starting: EventEmitter<any> = new EventEmitter(); @Output() starting: EventEmitter<any> = new EventEmitter();
constructor( constructor(
@Host() private content: Content, @Host() private content: Content,
element: ElementRef element: ElementRef
@ -146,7 +146,7 @@ export class Refresher {
this._touchMoveListener = this._handleTouchMove.bind(this); this._touchMoveListener = this._handleTouchMove.bind(this);
this._touchEndListener = this._handleTouchEnd.bind(this); this._touchEndListener = this._handleTouchEnd.bind(this);
this._handleScrollListener = this._handleScroll.bind(this); this._handleScrollListener = this._handleScroll.bind(this);
sc.addEventListener('touchmove', this._touchMoveListener); sc.addEventListener('touchmove', this._touchMoveListener);
sc.addEventListener('touchend', this._touchEndListener); sc.addEventListener('touchend', this._touchEndListener);
sc.addEventListener('scroll', this._handleScrollListener); sc.addEventListener('scroll', this._handleScrollListener);
@ -389,7 +389,7 @@ export class Refresher {
} }
this.isDragging = true; this.isDragging = true;
// overscroll according to the user's drag so far // overscroll according to the user's drag so far
this.overscroll( Math.round((this.deltaY - this.dragOffset) / 3) ); this.overscroll( Math.round((this.deltaY - this.dragOffset) / 3) );
@ -400,7 +400,7 @@ export class Refresher {
if (!this.activated && this.lastOverscroll > this.ptrThreshold) { if (!this.activated && this.lastOverscroll > this.ptrThreshold) {
this.activated = true; this.activated = true;
raf(this.activate.bind(this)); raf(this.activate.bind(this));
} else if (this.activated && this.lastOverscroll < this.ptrThreshold) { } else if (this.activated && this.lastOverscroll < this.ptrThreshold) {
this.activated = false; this.activated = false;
raf(this.deactivate.bind(this)); raf(this.deactivate.bind(this));

View File

@ -4,14 +4,15 @@ import {App} from 'ionic/ionic';
@App({ @App({
templateUrl: 'main.html' templateUrl: 'main.html'
}) })
class MyApp { class E2EApp {
doRefresh(refresher) { doRefresh(refresher) {
console.log('DOREFRESH', refresher) console.log('DOREFRESH', refresher)
setTimeout(() => { setTimeout(() => {
refresher.complete(); refresher.complete();
}) console.log("Complete");
}, 5000);
} }
doStarting() { doStarting() {

View File

@ -1,28 +1,22 @@
<!-- <ion-view nav-title="Pull to refresh"> --> <ion-toolbar><ion-title>Pull To Refresh</ion-title></ion-toolbar>
<ion-toolbar><ion-title>Pull To Refresh</ion-title></ion-toolbar>
<ion-content> <ion-content>
<ion-refresher (starting)="doStarting()" (refresh)="doRefresh($event, refresher)" (pulling)="doPulling($event, amt)"> <ion-refresher
</ion-refresher> (starting)="doStarting($event)"
<f></f> (refresh)="doRefresh($event, refresher)"
<f></f> (pulling)="doPulling($event, amt)">
<f></f> </ion-refresher>
<f></f> <f></f>
<f></f> <f></f>
<f></f> <f></f>
<f></f> <f></f>
</ion-content> <f></f>
<f></f>
<f></f>
</ion-content>
<!-- </ion-view> -->
<style> <style>
f { display: block; height: 400px; width: 100%; background-color: #387ef5; margin-bottom: 15px; } f {
#counter { display: block; height: 400px; width: 100%; background-color: #387ef5; margin-bottom: 15px;
position: fixed;
top: 0;
left: 0;
width: 100%;
padding: 20px;
background-color: rgba(0,0,0,0.4);
z-index: 5;
} }
</style> </style>