Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/oblador/react-native-shimmer

Simple shimmering effect for any view in React Native
https://github.com/oblador/react-native-shimmer

Last synced: 3 months ago
JSON representation

Simple shimmering effect for any view in React Native

Awesome Lists containing this project

README

        

# react-native-shimmer

Simple shimmering effect in React Native. Based on [Shimmer](https://github.com/facebook/Shimmer)/[shimmer-android](https://github.com/facebook/shimmer-android).

![Shimmer](https://github.com/facebook/Shimmer/blob/master/shimmer.gif?raw=true)

## Installation

```sh
yarn add react-native-shimmer
cd ios && pod install
```

Installation for React Native <= 0.59

### Option: With [CocoaPods](https://cocoapods.org/)

Add the following to your `Podfile` and run `pod update`:

```
pod 'react-native-shimmer', :path => 'node_modules/react-native-shimmer'
```

### Option: With `react-native link`

`$ react-native link react-native-shimmer`

### Option: Manually

#### iOS

Add `ios/RNShimmer.xcodeproj` to **Libraries** and add `libRNShimmer.a` to **Link Binary With Libraries** under **Build Phases**. [More info and screenshots about how to do this is available in the React Native documentation](http://facebook.github.io/react-native/docs/linking-libraries-ios.html#content).

#### Android

- Edit `android/settings.gradle` to look like this (without the +):

```diff
rootProject.name = 'MyApp'

include ':app'

+ include ':react-native-shimmer'
+ project(':react-native-shimmer').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-shimmer/android')
```

- Edit `android/app/build.gradle` (note: **app** folder) to look like this:

```diff
apply plugin: 'com.android.application'

android {
...
}

dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile "com.android.support:appcompat-v7:23.0.1"
compile "com.facebook.react:react-native:+" // From node_modules
+ compile project(':react-native-shimmer')
}
```

- Edit your `MainApplication.java` (deep in `android/app/src/main/java/...`) to look like this (note **two** places to edit):

```diff
package com.myapp;

+ import com.oblador.shimmer.RNShimmerPackage;

....

@Override
protected List getPackages() {
return Arrays.asList(
new MainReactPackage()
+ , new RNShimmerPackage()
);
}

}
```

## Usage

NOTE: `Shimmer` may only have one child.

```js
import Shimmer from 'react-native-shimmer';

Loading...
;
```

### Properties

| Prop | Description | Default |
| ----------------------- | -------------------------------------------------------------------------------------- | ------- |
| **`animating`** | Whether or not to show shimmering effect. | `true` |
| **`direction`** | The direction of shimmering animation, valid values are `up`, `down`, `left`, `right`. | `right` |
| **`duration`** | The shimmering animation duration in milliseconds. | `1000` |
| **`pauseDuration`** | The time interval between shimmerings in milliseconds. | `400` |
| **`animationOpacity`** | The opacity of the content while it is shimmering. | `1` |
| **`opacity`** | The opacity of the content before it is shimmering. | `0.5` |
| **`highlightLength`** | The highlight length of shimmering. Range of 0–1. _iOS only_ | `1` |
| **`beginFadeDuration`** | The duration of the fade used when shimmer begins. _iOS only_ | `0` |
| **`endFadeDuration`** | The duration of the fade used when shimmer ends. _iOS only_ | `0` |
| **`tilt`** | The tilt angle of the highlight, in degrees. _Android only_ | `0` |
| **`intensity`** | The intensity of the highlight mask. Range of 0–1. _Android only_ | `0` |

## License

[MIT License](http://opensource.org/licenses/mit-license.html). Shimmer is under BSD license. © Joel Arvidsson 2016 - present