fix(spinner): fix default spinner logic for relevant components (#17660)

- In the **`loading`** component, fallback to `spinner` icon config before platform default.
- In both **`refresher`** & **`infinite-scroll`** components, use platform default as final fallback.
- In **`infinite-scroll`** test templates, and the _basic_ **`virtual-scroll`** test template, fix loading _spinner_ and _text_ attributes.

fixes #17659
This commit is contained in:
Abdelaziz Bennouna
2019-03-15 21:52:33 +00:00
committed by Brandy Carney
parent b5a393bd48
commit 9c48fa715d
8 changed files with 18 additions and 10 deletions

View File

@ -30,7 +30,7 @@ export class InfiniteScrollContent implements ComponentInterface {
if (this.loadingSpinner === undefined) { if (this.loadingSpinner === undefined) {
this.loadingSpinner = this.config.get( this.loadingSpinner = this.config.get(
'infiniteLoadingSpinner', 'infiniteLoadingSpinner',
this.config.get('spinner', 'lines') this.config.get('spinner', this.mode === 'ios' ? 'lines' : 'crescent')
); );
} }
} }

View File

@ -30,7 +30,7 @@
<ion-list id="list"></ion-list> <ion-list id="list"></ion-list>
<ion-infinite-scroll threshold="100px" id="infinite-scroll"> <ion-infinite-scroll threshold="100px" id="infinite-scroll">
<ion-infinite-scroll-content loadingSpinner="bubbles" loadingText="Loading more data..."> <ion-infinite-scroll-content loading-spinner="crescent" loading-text="Loading more data...">
</ion-infinite-scroll-content> </ion-infinite-scroll-content>
</ion-infinite-scroll> </ion-infinite-scroll>
</ion-content> </ion-content>

View File

@ -30,7 +30,7 @@
</ion-list> </ion-list>
<ion-infinite-scroll threshold="100px" id="infinite-scroll"> <ion-infinite-scroll threshold="100px" id="infinite-scroll">
<ion-infinite-scroll-content loadingSpinner="bubbles" loadingText="Loading more data..."> <ion-infinite-scroll-content loading-spinner="bubbles" loading-text="Loading more data...">
</ion-infinite-scroll-content> </ion-infinite-scroll-content>
</ion-infinite-scroll> </ion-infinite-scroll>
</ion-content> </ion-content>

View File

@ -18,8 +18,8 @@
<ion-infinite-scroll threshold="100px" id="infinite-scroll"> <ion-infinite-scroll threshold="100px" id="infinite-scroll">
<ion-infinite-scroll-content <ion-infinite-scroll-content
loadingSpinner="bubbles" loading-spinner="bubbles"
loadingText="Loading more data..."> loading-text="Loading more data...">
</ion-infinite-scroll-content> </ion-infinite-scroll-content>
</ion-infinite-scroll> </ion-infinite-scroll>
</ion-content> </ion-content>

View File

@ -24,7 +24,7 @@
<ion-content id="content" padding> <ion-content id="content" padding>
<ion-infinite-scroll threshold="100px" id="infinite-scroll" position="top"> <ion-infinite-scroll threshold="100px" id="infinite-scroll" position="top">
<ion-infinite-scroll-content loadingSpinner="bubbles" loadingText="Loading more data..."> <ion-infinite-scroll-content loading-spinner="bubbles" loading-text="Loading more data...">
</ion-infinite-scroll-content> </ion-infinite-scroll-content>
</ion-infinite-scroll> </ion-infinite-scroll>

View File

@ -113,7 +113,10 @@ export class Loading implements ComponentInterface, OverlayInterface {
componentWillLoad() { componentWillLoad() {
if (this.spinner === undefined) { if (this.spinner === undefined) {
this.spinner = this.config.get('loadingSpinner', this.mode === 'ios' ? 'lines' : 'crescent'); this.spinner = this.config.get(
'loadingSpinner',
this.config.get('spinner', this.mode === 'ios' ? 'lines' : 'crescent')
);
} }
} }

View File

@ -1,12 +1,14 @@
import { Component, ComponentInterface, Prop } from '@stencil/core'; import { Component, ComponentInterface, Prop } from '@stencil/core';
import { Config, SpinnerTypes } from '../../interface'; import { Config, Mode, SpinnerTypes } from '../../interface';
@Component({ @Component({
tag: 'ion-refresher-content' tag: 'ion-refresher-content'
}) })
export class RefresherContent implements ComponentInterface { export class RefresherContent implements ComponentInterface {
mode!: Mode;
@Prop({ context: 'config' }) config!: Config; @Prop({ context: 'config' }) config!: Config;
/** /**
@ -34,7 +36,10 @@ export class RefresherContent implements ComponentInterface {
this.pullingIcon = this.config.get('refreshingIcon', 'arrow-down'); this.pullingIcon = this.config.get('refreshingIcon', 'arrow-down');
} }
if (this.refreshingSpinner === undefined) { if (this.refreshingSpinner === undefined) {
this.refreshingSpinner = this.config.get('refreshingSpinner', this.config.get('spinner', 'lines')); this.refreshingSpinner = this.config.get(
'refreshingSpinner',
this.config.get('spinner', this.mode === 'ios' ? 'lines' : 'crescent')
);
} }
} }

View File

@ -42,7 +42,7 @@
</ion-virtual-scroll> </ion-virtual-scroll>
<ion-infinite-scroll threshold="100px" id="infinite-scroll"> <ion-infinite-scroll threshold="100px" id="infinite-scroll">
<ion-infinite-scroll-content loadingSpinner="bubbles" loadingText="Loading more data..."> <ion-infinite-scroll-content loading-spinner="bubbles" loading-text="Loading more data...">
</ion-infinite-scroll-content> </ion-infinite-scroll-content>
</ion-infinite-scroll> </ion-infinite-scroll>