From e4b200639e9fe3b9e2c63a5f92002d5b61e04fe0 Mon Sep 17 00:00:00 2001 From: Brandy Carney Date: Tue, 26 Jan 2016 18:55:27 -0500 Subject: [PATCH] fix(scroll): canOverscroll was set to false which prevented PTR from ever working MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It’s still finishing the PTR before the complete is called though References #5207 --- ionic/components/scroll/pull-to-refresh.ts | 18 ++++----- .../scroll/test/pull-to-refresh/index.ts | 5 ++- .../scroll/test/pull-to-refresh/main.html | 40 ++++++++----------- 3 files changed, 29 insertions(+), 34 deletions(-) diff --git a/ionic/components/scroll/pull-to-refresh.ts b/ionic/components/scroll/pull-to-refresh.ts index d5fa2ecd01..469ee8e0cb 100644 --- a/ionic/components/scroll/pull-to-refresh.ts +++ b/ionic/components/scroll/pull-to-refresh.ts @@ -85,7 +85,7 @@ export class Refresher { private _touchMoveListener; private _touchEndListener; private _handleScrollListener; - + isActive: boolean; isDragging: boolean = false; isOverscrolling: boolean = false; @@ -94,7 +94,7 @@ export class Refresher { ptrThreshold: number = 0; activated: boolean = false; scrollTime: number = 500; - canOverscroll: boolean = false; + canOverscroll: boolean = true; startY; deltaY; scrollHost; @@ -103,18 +103,18 @@ export class Refresher { showSpinner: boolean; isRefreshing: boolean; isRefreshingTail: boolean; - + @Input() pullingIcon: string; @Input() pullingText: string; @Input() refreshingIcon: string; @Input() refreshingText: string; @Input() spinner: string; - + @Output() pulling: EventEmitter = new EventEmitter(); @Output() refresh: EventEmitter = new EventEmitter(); @Output() starting: EventEmitter = new EventEmitter(); - - + + constructor( @Host() private content: Content, element: ElementRef @@ -146,7 +146,7 @@ export class Refresher { this._touchMoveListener = this._handleTouchMove.bind(this); this._touchEndListener = this._handleTouchEnd.bind(this); this._handleScrollListener = this._handleScroll.bind(this); - + sc.addEventListener('touchmove', this._touchMoveListener); sc.addEventListener('touchend', this._touchEndListener); sc.addEventListener('scroll', this._handleScrollListener); @@ -389,7 +389,7 @@ export class Refresher { } this.isDragging = true; - + // overscroll according to the user's drag so far this.overscroll( Math.round((this.deltaY - this.dragOffset) / 3) ); @@ -400,7 +400,7 @@ export class Refresher { if (!this.activated && this.lastOverscroll > this.ptrThreshold) { this.activated = true; raf(this.activate.bind(this)); - + } else if (this.activated && this.lastOverscroll < this.ptrThreshold) { this.activated = false; raf(this.deactivate.bind(this)); diff --git a/ionic/components/scroll/test/pull-to-refresh/index.ts b/ionic/components/scroll/test/pull-to-refresh/index.ts index 51f5b3c816..f0958056d7 100644 --- a/ionic/components/scroll/test/pull-to-refresh/index.ts +++ b/ionic/components/scroll/test/pull-to-refresh/index.ts @@ -4,14 +4,15 @@ import {App} from 'ionic/ionic'; @App({ templateUrl: 'main.html' }) -class MyApp { +class E2EApp { doRefresh(refresher) { console.log('DOREFRESH', refresher) setTimeout(() => { refresher.complete(); - }) + console.log("Complete"); + }, 5000); } doStarting() { diff --git a/ionic/components/scroll/test/pull-to-refresh/main.html b/ionic/components/scroll/test/pull-to-refresh/main.html index 22ebe8d02f..d3f8b974fb 100644 --- a/ionic/components/scroll/test/pull-to-refresh/main.html +++ b/ionic/components/scroll/test/pull-to-refresh/main.html @@ -1,28 +1,22 @@ - - Pull To Refresh +Pull To Refresh - - - - - - - - - - - + + + + + + + + + + + -