Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/conduitmobilernd/react-native-scratch

Scratch view for react native
https://github.com/conduitmobilernd/react-native-scratch

react-native react-native-scratch react-native-scratch-card react-native-scratch-image react-native-scratch-view scratch scratch-card scratch-image scratch-view

Last synced: 2 months ago
JSON representation

Scratch view for react native

Awesome Lists containing this project

README

        

# react-native-scratch

## Getting started

`$ npm install react-native-scratch --save`

### Mostly automatic installation

`$ react-native link react-native-scratch`

### Manual installation

#### iOS

1. In XCode, in the project navigator, right click `Libraries` ➜ `Add Files to [your project's name]`
2. Go to `node_modules` ➜ `react-native-scratch` and add `RNScratch.xcodeproj`
3. In XCode, in the project navigator, select your project. Add `libRNScratch.a` to your project's `Build Phases` ➜ `Link Binary With Libraries`
4. Run your project (`Cmd+R`)<

#### Android

1. Open up `android/app/src/main/java/[...]/MainActivity.java`
- Add `import com.como.RNTScratchView.ScratchViewPackage;` to the imports at the top of the file
- Add `new ScratchViewPackage()` to the list returned by the `getPackages()` method
2. Append the following lines to `android/settings.gradle`:
```
include ':react-native-scratch'
project(':react-native-scratch').projectDir = new File(rootProject.projectDir, '../node_modules/react-native-scratch/android')
```
3. Insert the following lines inside the dependencies block in `android/app/build.gradle`:
```
implementation project(':react-native-scratch')
```

## Usage

The ScratchView will fill its containing view and cover all other content untill you scratch it
Just put it as the last component in your view
```javascript
import React, { Component } from 'react';
import { View } from 'react-native';
import ScratchView from 'react-native-scratch'

class MyView extends Component {

onImageLoadFinished = ({ id, success }) => {
// Do something
}

onScratchProgressChanged = ({ value, id }) => {
// Do domething like showing the progress to the user
}

onScratchDone = ({ isScratchDone, id }) => {
// Do something
}

onScratchTouchStateChanged = ({ id, touchState }) => {
// Example: change a state value to stop a containing
// FlatList from scrolling while scratching
this.setState({ scrollEnabled: !touchState });
}

render() {
return (
// will be covered by the ScratchView
// will be covered by the ScratchView
}
)
}

export default MyView;
```