From 33a627461343b8155c1ec2309d4b1dba4e51c1ec Mon Sep 17 00:00:00 2001 From: "Manu Mtz.-Almeida" Date: Fri, 2 Mar 2018 16:04:27 +0100 Subject: [PATCH] perf(scroll): watchdog + simplification --- packages/core/src/components.d.ts | 17 +- packages/core/src/components/app/app.tsx | 29 +- packages/core/src/components/app/readme.md | 8 - .../core/src/components/content/content.tsx | 8 +- .../core/src/components/content/readme.md | 10 + .../components/content/test/basic/index.html | 7 + .../infinite-scroll/infinite-scroll.tsx | 13 +- .../input-shims/hacks/input-blurring.ts | 14 +- .../components/input-shims/input-shims.tsx | 5 +- .../core/src/components/input-shims/readme.md | 14 - packages/core/src/components/scroll/readme.md | 31 +- .../core/src/components/scroll/scroll.scss | 3 - .../core/src/components/scroll/scroll.tsx | 276 ++++++++---------- packages/core/src/index.d.ts | 2 +- packages/core/src/utils/helpers.ts | 11 +- 15 files changed, 183 insertions(+), 265 deletions(-) diff --git a/packages/core/src/components.d.ts b/packages/core/src/components.d.ts index b1ce4ccebc..4ba1aafc56 100644 --- a/packages/core/src/components.d.ts +++ b/packages/core/src/components.d.ts @@ -42,20 +42,16 @@ import { GestureCallback, GestureDetail, } from './components/gesture/gesture'; -import { - App, - FrameworkDelegate as FrameworkDelegate2, -} from '.'; import { PickerButton, PickerColumn as PickerColumn2, } from './components/picker/picker'; -import { - ScrollCallback, -} from './components/scroll/scroll'; import { SelectPopoverOption, } from './components/select-popover/select-popover'; +import { + FrameworkDelegate as FrameworkDelegate2, +} from '.'; import { DomRenderFn, HeaderFn, @@ -770,6 +766,7 @@ declare global { export interface IonContentAttributes extends HTMLAttributes { forceOverscroll?: boolean; fullscreen?: boolean; + scrollEvents?: boolean; } } } @@ -1240,7 +1237,7 @@ declare global { } namespace JSXElements { export interface IonInputShimsAttributes extends HTMLAttributes { - app?: App; + } } } @@ -2706,9 +2703,7 @@ declare global { export interface IonScrollAttributes extends HTMLAttributes { forceOverscroll?: boolean; mode?: string; - onionScroll?: ScrollCallback; - onionScrollEnd?: ScrollCallback; - onionScrollStart?: ScrollCallback; + scrollEvents?: boolean; } } } diff --git a/packages/core/src/components/app/app.tsx b/packages/core/src/components/app/app.tsx index a7b51e70a4..6b4a8870d1 100644 --- a/packages/core/src/components/app/app.tsx +++ b/packages/core/src/components/app/app.tsx @@ -4,7 +4,6 @@ import { Config, NavEvent, OverlayController, PublicNav, PublicViewController } import { getOrAppendElement } from '../../utils/helpers'; const rootNavs = new Map(); -const ACTIVE_SCROLLING_TIME = 100; let backButtonActions: BackButtonAction[] = []; @Component({ @@ -21,11 +20,9 @@ export class App { private isDevice = false; private deviceHacks = false; - private scrollTime = 0; externalNavPromise: void | Promise = null; externalNavOccuring = false; - didScroll = false; @Element() element: HTMLElement; @Event() exitApp: EventEmitter; @@ -102,29 +99,6 @@ export class App { return true; } - /** - * Boolean if the app is actively scrolling or not. - * @return {boolean} returns true or false - */ - @Method() - isScrolling(): boolean { - const scrollTime = this.scrollTime; - if (scrollTime === 0) { - return false; - } - if (scrollTime < Date.now()) { - this.scrollTime = 0; - return false; - } - return true; - } - - @Method() - setScrolling() { - this.scrollTime = Date.now() + ACTIVE_SCROLLING_TIME; - this.didScroll = true; - } - @Method() getTopNavs(rootNavId = -1): PublicNav[] { return getTopNavsImpl(rootNavId); @@ -142,7 +116,6 @@ export class App { return null; } - /** * The back button event is triggered when the user presses the native * platform's back button, also referred to as the "hardware" back button. @@ -244,7 +217,7 @@ export class App { render() { return [ , - this.deviceHacks && , + this.deviceHacks && , this.isDevice && , this.isDevice && , diff --git a/packages/core/src/components/app/readme.md b/packages/core/src/components/app/readme.md index 527bea63f2..7faa1e312a 100644 --- a/packages/core/src/components/app/readme.md +++ b/packages/core/src/components/app/readme.md @@ -42,11 +42,6 @@ Returns an array of top level Navs Returns whether the application is enabled or not -#### isScrolling() - -Boolean if the app is actively scrolling or not. - - #### registerBackButtonAction() The back button event is triggered when the user presses the native @@ -69,9 +64,6 @@ This API is not meant for public usage and could change at any time -#### setScrolling() - - #### updateExternalNavOccuring() Updates whether an external navigation event is occuring diff --git a/packages/core/src/components/content/content.tsx b/packages/core/src/components/content/content.tsx index cb88e9233b..eb57ef1852 100644 --- a/packages/core/src/components/content/content.tsx +++ b/packages/core/src/components/content/content.tsx @@ -35,6 +35,9 @@ export class Content { */ @Prop() forceOverscroll: boolean; + + @Prop() scrollEvents = false; + @Listen('body:ionNavChanged') onNavChanged() { this.resize(); @@ -128,7 +131,10 @@ export class Content { this.resize(); return [ - + , diff --git a/packages/core/src/components/content/readme.md b/packages/core/src/components/content/readme.md index b0a2e96a6c..4ef9272ad0 100644 --- a/packages/core/src/components/content/readme.md +++ b/packages/core/src/components/content/readme.md @@ -34,6 +34,11 @@ and footers. This effect can easily be seen by setting the toolbar to transparent. +#### scrollEvents + +boolean + + ## Attributes #### force-overscroll @@ -54,6 +59,11 @@ and footers. This effect can easily be seen by setting the toolbar to transparent. +#### scroll-events + +boolean + + ## Methods #### scrollByPoint() diff --git a/packages/core/src/components/content/test/basic/index.html b/packages/core/src/components/content/test/basic/index.html index c22c965518..0962435be3 100644 --- a/packages/core/src/components/content/test/basic/index.html +++ b/packages/core/src/components/content/test/basic/index.html @@ -69,6 +69,13 @@