1.0.1 • Published 4 years ago

react-native-loading-view v1.0.1

Weekly downloads
19
License
MIT
Repository
github
Last release
4 years ago

react-native-loading-view

Loading view to show your user that magic is happening in the background.

Screenshot

Installation

Install and save it with npm...

npm install --save react-native-loading-view

Import it in the file you want to use it in...

import LoadingView from 'react-native-loading-view'

Usage

Just wrap the components you want to hide while loading in a LoadingView component. It won't show its children unless the prop loading is set to false.

// This LoadingView would never show its children
<LoadingView loading={true}>
    <Text>Im finished!</Text>
</LoadingView>

The LoadingView is highly customizable. You can use the following props:

PropValue typeUsage
loadingbooleandetermines whether the loading view is shown or not
styleobjectStyle which applies on the outer container of the component
textstringText which is shown below the activity indicator
textStyleobjectSets the style of the specified text. Be creative!
contentcomponentThe content shown below the activity indicator. Will replace the default text specified in the text prop
textStyleobjectStyles which apply on the wrapping text element of the content string
indicatorcomponentThe component which should indicate that something great is happening. By default it's an <ActivityIndicator/>.
sizelarge/smallThe size of the activity indicator. Only applies if you use the default activity indicator.
overlaybooleanIf true, this will set the view as an absolute-positioned overlay over your content
overlayStyleobjectThe style used when you use the overlay mode. It's applied on the container component.

Example

This is just a simple example with the default react-native app

/**
 * Sample React Native App
 * https://github.com/facebook/react-native
 * @flow
 */

import React, { Component } from 'react';
import {
  AppRegistry,
  StyleSheet,
  Text,
  View
} from 'react-native';
import LoadingView from 'react-native-loading-view'

export default class ReactNativeSandbox extends Component {

  constructor(props) {
    super(props)
    this.state = {
      loading: true
    }
  }

  componentDidMount = () => {
    // This is just meant as an example of how you handle an asynchronous operation
    // In reality this might be a fetch or storage access
    setTimeout(() => {
      this.setState({
        loading: false
      })
    }, 5000)
  }

  render() {
    return (
      <LoadingView loading={this.state.loading}>
        <View style={styles.container}>
          <Text style={styles.welcome}>
            Welcome to React Native!
          </Text>
          <Text style={styles.instructions}>
            To get started, edit index.ios.js
          </Text>
          <Text style={styles.instructions}>
            Press Cmd+R to reload,{'\n'}
            Cmd+D or shake for dev menu
          </Text>
        </View>
      </LoadingView>
    );
  }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    justifyContent: 'center',
    alignItems: 'center',
    backgroundColor: '#F5FCFF',
  },
  welcome: {
    fontSize: 20,
    textAlign: 'center',
    margin: 10,
  },
  instructions: {
    textAlign: 'center',
    color: '#333333',
    marginBottom: 5,
  },
});

AppRegistry.registerComponent('ReactNativeSandbox', () => ReactNativeSandbox);

License

MIT