# react-native-loading-view

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

Latest version **1.0.1** (published 2020-01-09) · MIT license · 0 weekly downloads

## Install

```sh
npm install react-native-loading-view
pnpm add react-native-loading-view
yarn add react-native-loading-view
bun add react-native-loading-view
```

## Health

**Score 15/100 (F)** — status: abandoned.

Positive: no vulnerabilities.

Warnings: low downloads; no types; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 1.0.1 |
| Published | 2020-01-09 |
| First published | 2017-07-14 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | none |
| Module format | CommonJS |
| Dependencies | 0 |
| Unpacked size | 34.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 9 |
| Author | Yannic Inselmann |
| Maintainers | yanniz0r |
| Keywords | react, native, loading, view, spinner, activity, indicator, background, loader |

## Links

- npm: https://www.npmjs.com/package/react-native-loading-view
- Repository: https://github.com/yanniz0r/react-native-loading-view
- Homepage: https://github.com/yanniz0r/react-native-loading-view#readme
- Issues: https://github.com/yanniz0r/react-native-loading-view/issues
- npm.io page: https://npm.io/package/react-native-loading-view

## Alternatives

- [mobx-react](https://npm.io/package/mobx-react.md) — 2.8M weekly downloads
- [rc-tree](https://npm.io/package/rc-tree.md) — 2.6M weekly downloads
- [@react-oauth/google](https://npm.io/package/@react-oauth/google.md) — 1.3M weekly downloads
- [@wagmi/connectors](https://npm.io/package/@wagmi/connectors.md) — 877.0K weekly downloads
- [vee-validate](https://npm.io/package/vee-validate.md) — 836.4K weekly downloads

## Recent versions

- 1.0.1 (latest) — 2020-01-09
- 1.0.0 — 2017-07-14

## README

# react-native-loading-view
Loading view to show your user that magic is happening in the background.

![Screenshot](/media/loading-view-screenshot.png)

## 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...
```js
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`.
```javascript
// 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:

|Prop|Value type|Usage|
|----|----------|-----|
|loading|boolean|determines whether the loading view is shown or not|
|style|object|Style which applies on the outer container of the component|
|text|string|Text which is shown below the activity indicator|
|textStyle|object|Sets the style of the specified text. Be creative!|
|content|component|The content shown below the activity indicator. Will replace the default text specified in the `text` prop|
|textStyle|object|Styles which apply on the wrapping text element of the content string|
|indicator|component|The component which should indicate that something great is happening. By default it's an `<ActivityIndicator/>`.|
|size|large/small|The size of the activity indicator. Only applies if you use the default activity indicator.|
|overlay|boolean|If true, this will set the view as an absolute-positioned overlay over your content
|overlayStyle|object|The 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
```javascript
/**
 * 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

---
_Source: https://npm.io/package/react-native-loading-view · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
