Skip to content

Commit 7ee0b52

Browse files
committed
fix(infinitescroll): only show spinner when loading
Closes #5690
1 parent c96af06 commit 7ee0b52

File tree

3 files changed

+73
-1
lines changed

3 files changed

+73
-1
lines changed

ionic/components/infinite-scroll/infinite-scroll.scss

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ ion-infinite-scroll-content {
2626
}
2727

2828
.infinite-loading {
29+
opacity: 0;
2930
width: 100%;
3031
margin: $infinite-scroll-loading-margin;
3132
}
@@ -39,6 +40,10 @@ ion-infinite-scroll-content {
3940
// Infinite Scroll Content States
4041
// --------------------------------------------------
4142

42-
ion-infinite-scroll-content[state=disabled] .infinite-loading {
43+
ion-infinite-scroll-content[state=loading] .infinite-loading {
44+
opacity: 1;
45+
}
46+
47+
ion-infinite-scroll-content[state=disabled] {
4348
display: none;
4449
}
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
import {App, InfiniteScroll} from 'ionic-angular';
2+
3+
4+
@App({
5+
templateUrl: 'main.html'
6+
})
7+
class E2EApp {
8+
items = [];
9+
10+
constructor() {
11+
for (var i = 0; i < 5; i++) {
12+
this.items.push( this.items.length );
13+
}
14+
}
15+
16+
doInfinite(infiniteScroll: InfiniteScroll) {
17+
console.log('Begin async operation');
18+
19+
getAsyncData().then(newData => {
20+
for (var i = 0; i < newData.length; i++) {
21+
this.items.push( this.items.length );
22+
}
23+
24+
console.log('Finished receiving data, async operation complete');
25+
infiniteScroll.complete();
26+
27+
if (this.items.length > 90) {
28+
infiniteScroll.enable(false);
29+
}
30+
});
31+
}
32+
33+
}
34+
35+
function getAsyncData(): Promise<number[]> {
36+
// async return mock data
37+
return new Promise(resolve => {
38+
39+
setTimeout(() => {
40+
let data = [];
41+
for (var i = 0; i < 30; i++) {
42+
data.push(i);
43+
}
44+
45+
resolve(data);
46+
}, 500);
47+
48+
});
49+
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
<ion-toolbar><ion-title>Infinite Scroll</ion-title></ion-toolbar>
2+
3+
<ion-content>
4+
5+
<ion-list>
6+
<ion-item *ngFor="#item of items">
7+
{{ item }}
8+
</ion-item>
9+
</ion-list>
10+
11+
<ion-infinite-scroll (infinite)="doInfinite($event)" threshold="100px">
12+
<ion-infinite-scroll-content
13+
loadingSpinner="bubbles"
14+
loadingText="Loading more data...">
15+
</ion-infinite-scroll-content>
16+
</ion-infinite-scroll>
17+
18+
</ion-content>

0 commit comments

Comments
 (0)