Package Exports
- react-native-shimmer-placeholder
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (react-native-shimmer-placeholder) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
React Native Shimmer Placeholder
Placeholder for both IOS and Android
`
Get Started
Installation
Step 1: Install react-native-linear-gradient (dependence)
npm i react-native-linear-gradient --save && react-native link react-native-linear-gradient
or
yarn add react-native-linear-gradient && react-native link react-native-linear-gradient
Step 2: Install this package
npm i react-native-shimmer-placeholder --save
or
yarn add react-native-shimmer-placeholder
That's all!
For who using Expo
Just install direct this package
npm install https://github.com/tomzaku/react-native-shimmer-placeholder.git#expo --save
Usage
Simple
import ShimmerPlaceHolder from 'react-native-shimmer-placeholder'
<ShimmerPlaceHolder autoRun={true} />
<ShimmerPlaceHolder autoRun={true} visible={isFetched}>
<Text>
Wow, awesome here.
</Text>
</ShimmerPlaceHolder>
Connect more components
componentDidMount() {
this.runPlaceHolder();
}
runPlaceHolder() {
if (Array.isArray(this.loadingAnimated) && this.loadingAnimated.length > 0) {
Animated.parallel(
this.loadingAnimated.map(animate => {
if (animate&&animate.getAnimated) {
return animate.getAnimated();
}
return null;
}),
{
stopTogether: false,
}
).start(() => {
this.runPlaceHolder();
})
}
}
_renderRows(loadingAnimated, numberRow, uniqueKey) {
let shimmerRows = [];
for(let index = 0; index < numberRow; index++ ){
shimmerRows.push(
<ShimmerPlaceHolder
key={`loading-${index}-${uniqueKey}`}
ref={(ref) => loadingAnimated.push(ref)}
style={{ marginBottom: 7 }}
/>
)
}
return (
<View>
{shimmerRows}
</View>
)
}
render() {
this.loadingAnimated = [];
return(
{this._renderRows(this.loadingAnimated, 3, '3rows')}
)
}
More Detail see this
Props
Prop | Description | Type | Default |
---|---|---|---|
visible |
visible child components | boolean | false |
style |
Styles applied to the container of Shimmer Placeholder | {backgroundColor: '#ebebeb',overflow: 'hidden'} |
|
width |
With of row | number | 200 |
duration |
Duration of shimmer over a row | number | 300 |
height |
height of row | number | 15 |
widthShimmer |
percent of line placeholder | number | 1.0 |
reverse |
Reverse direction | boolean | true |
autoRun |
Run shimmer animated at begin | boolean | false |
isInteraction |
Defines whether or not the shimmer animation creates an interaction handle on the InteractionManager |
boolean | true |
colorShimmer |
Color of the shimmer. | string | ['#ebebeb', '#c5c5c5', '#ebebeb'] |
backgroundColorBehindBorder |
If you use border in style you have to set background behide(to force Android work). | string | 'white' |
Methods
Method | Description | Type |
---|---|---|
getAnimated |
get Animated of Placeholder | Animated |
Contribute
Any help this module will be approciate!