JSPM

  • ESM via JSPM
  • ES Module Entrypoint
  • Export Map
  • Keywords
  • License
  • Repository URL
  • TypeScript Types
  • README
  • Created
  • Published
  • Downloads 54
  • Score
    100M100P100Q57567F
  • License MIT

Package Exports

  • react-native-scratch

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-scratch) 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-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 LibrariesAdd Files to [your project's name]
  2. Go to node_modulesreact-native-scratch and add RNScratch.xcodeproj
  3. In XCode, in the project navigator, select your project. Add libRNScratch.a to your project's Build PhasesLink Binary With Libraries
  4. Run your project (Cmd+R)<

Android

  1. Open up android/app/src/main/java/[...]/MainActivity.java
  • Add import com.reactlibrary.RNScratchPackage; to the imports at the top of the file
  • Add new RNScratchPackage() to the list returned by the getPackages() method
  1. 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')
  2. Insert the following lines inside the dependencies block in android/app/build.gradle:
    compile 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

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 (<View style={{ width: 300, height: 300 }}>
            <ComponentA> // will be covered with the ScratchView
            <ComponentB> // will be covered with the ScratchView
            <ScratchView
                id={1} // ScratchView id (Optional)
                brushSize={10} // Default is 10% of the smallest dimension (width/height)
                threshold={70} // Report full scratch after 70 percentage, change as you see fit. Default is 50
                fadeOut={false} // Disable the fade out animation when scratch is done. default is true
                placeholderColor="#AAAAAA" // Scratch color while image is loading (or while image not present)
                imageUrl="http://yourUrlToImage.jpg" // the url to your image (Optional)
                onImageLoadFinished={this.onImageLoadFinished} // Event to indicate that the image has done loading
                onTouchStateChanged={this.onTouchStateChangedMethod} // Touch event (to stop a containing FlatList from scrolling for example)
                onScratchProgressChanged={this.onScratchProgressChanged} // Scratch progress event while scratching
                onScratchDone={this.onScratchDone} // Scratch is done event
            />}
        </View>)
    }

export default MyView;