import { Component, ComponentInterface, Host, Prop, h } from '@stencil/core'; import { IonicSafeString } from '../../'; import { config } from '../../global/config'; import { getIonMode } from '../../global/ionic-global'; import { SpinnerTypes } from '../../interface'; import { sanitizeDOMString } from '../../utils/sanitization'; @Component({ tag: 'ion-infinite-scroll-content', styleUrls: { ios: 'infinite-scroll-content.ios.scss', md: 'infinite-scroll-content.md.scss' } }) export class InfiniteScrollContent implements ComponentInterface { /** * An animated SVG spinner that shows while loading. */ @Prop({ mutable: true }) loadingSpinner?: SpinnerTypes | null; /** * Optional text to display while loading. * `loadingText` can accept either plaintext or HTML as a string. * To display characters normally reserved for HTML, they * must be escaped. For example `` would become * `<Ionic>` * * For more information: [Security Documentation](https://ionicframework.com/docs/faq/security) */ @Prop() loadingText?: string | IonicSafeString; componentDidLoad() { if (this.loadingSpinner === undefined) { const mode = getIonMode(this); this.loadingSpinner = config.get( 'infiniteLoadingSpinner', config.get('spinner', mode === 'ios' ? 'lines' : 'crescent') ); } } render() { const mode = getIonMode(this); return (
{this.loadingSpinner && (
)} {this.loadingText && (
)}
); } }