react-global-loading
Version:
Global loading screen for React
129 lines (95 loc) • 2.63 kB
Markdown

[][npm_url]
[][npm_url]
[][npm_url]
[]: https://www.npmjs.org/package/react-global-loading
React simple global loading package
With Yarn:
```bash
yarn add react-global-loading
```
With npm:
```bash
npm install --save react-global-loading
```
Add the GlobalLoading to your app first (should be at root component like index.js or app.js). It will take care of rendering global loading . Now you can trigger `globalLoading.show()` and `globalLoading.hide()` from anywhere!
```tsx
import { GlobalLoading, showLoading } from 'react-global-loading';
const App = () => {
const show = () => {
showLoading(true);
setTimeout(() => {
showLoading(false);
}, 1000);
};
return (
<div>
<button onClick={show}>Show Loading</button>
<GlobalLoading />
</div>
);
};
```
```tsx
import { showLoading } from 'react-global-loading';
showLoading(true); // show
showLoading(false); // hide
import { show, hide } from 'react-global-loading';
show(); // show
hide(); // hide
import { globalLoading } from 'react-global-loading';
globalLoading.show(); // show
globalLoading.hide(); // hide
```
<details><summary>Example using React Class</summary>
</details>
Default props:
```
children: React.ReactNode;
WrapperComponent?: (props: any) => ReactElement;
backgroundColor?: string;
loadingSize?: number;
loadingColor?: string;
loadingType?:
| 'spin'
| 'bars'
| 'bubbles'
| 'cubes'
| 'cylon'
| 'spin'
| 'spinningBubbles'
| 'spokes';
```
`children` will replace default loading icon
```tsx
<GlobalLoading>
<ReactLoading /> // OR your custom loading component
<GlobalLoading/>
```
The wrapper component ( background screen )
```tsx
<GlobalLoading WrapperComponent={() => <div style={style} />} />;
// suggested style
style = {
position: 'fixed',
top: 0,
left: 0,
right: 0,
bottom: 0,
width: '100vw',
height: '100vh',
backgroundColor: 'rgba(0, 0, 0, 0.6)',
display: 'flex',
justifyContent: 'center',
alignItems: 'center'
};
```
Style of the default loading component