From fcdf35565f4ad3a4cefde2f921c1e8cb364111b0 Mon Sep 17 00:00:00 2001
From: "Manu Mtz.-Almeida"
Date: Sun, 11 Mar 2018 17:43:23 +0100
Subject: [PATCH] test(virtual-scroll): infinite-scroll
---
.../core/src/components/nav-push/nav-push.tsx | 4 +--
.../components/virtual-scroll/test/basic.html | 33 +++++++++++++++++--
2 files changed, 33 insertions(+), 4 deletions(-)
diff --git a/packages/core/src/components/nav-push/nav-push.tsx b/packages/core/src/components/nav-push/nav-push.tsx
index 9e5f15a822..1d5cfbbb1a 100644
--- a/packages/core/src/components/nav-push/nav-push.tsx
+++ b/packages/core/src/components/nav-push/nav-push.tsx
@@ -14,8 +14,8 @@ export class NavPush {
@Listen('child:click')
push(): Promise {
const nav = this.el.closest('ion-nav');
- if (nav) {
- const toPush = this.url || this.component;
+ const toPush = this.url || this.component;
+ if (nav && toPush) {
return nav.push(toPush, this.data);
}
return Promise.resolve(null);
diff --git a/packages/core/src/components/virtual-scroll/test/basic.html b/packages/core/src/components/virtual-scroll/test/basic.html
index 8bd4fe015c..2dc282b14c 100644
--- a/packages/core/src/components/virtual-scroll/test/basic.html
+++ b/packages/core/src/components/virtual-scroll/test/basic.html
@@ -26,6 +26,12 @@
Add Items
+
+
+
+
@@ -36,8 +42,10 @@
const virtual = document.getElementById('virtual');
const items = Array.from({length: 100}, (x, i) => i);
- function addItems() {
- const append = Array.from({length: 10}, (x, i) => "append" + i);
+ function addItems(append) {
+ if(!append) {
+ append = Array.from({length: 10}, (x, i) => "append" + i);
+ }
items.push(...append);
virtual.markDirtyTail(append.length)
}
@@ -79,6 +87,27 @@
return renderHeader(el, cell.value);
};
virtual.items = items;
+
+
+
+ const infiniteScroll = document.getElementById('infinite-scroll');
+ infiniteScroll.addEventListener('ionInfinite', async function() {
+ console.log('Loading data...');
+ const data = await getAsyncData();
+ infiniteScroll.complete();
+ addItems(data);
+
+ console.log('Done');
+ });
+
+ function getAsyncData() {
+ return new Promise(resolve => {
+ setTimeout(() => {
+ const data = Array.from({length: 10}, (x, i) => "append" + i);
+ resolve(data);
+ }, 500);
+ });
+ }