Home

Awesome

🎨 React Native Sketch [Unmaintained]

npm Downloads MIT License

⚠️ NOTE [12/08/2021]: Archiving this repository because I haven't had the resources to maintain it for a while. Apologies.

A React Native component for touch-based drawing.

Capture

Features

Setup

Install the module from npm:

npm i -S react-native-sketch

Link the module to your project:

react-native link react-native-sketch

Usage

import React from 'react';
import { Alert, Button, View } from 'react-native';
import Sketch from 'react-native-sketch';

export default class MyPaint extends React.Component {
  save = () => {
    this.sketch.save().then(({ path }) => {
      Alert.alert('Image saved!', path);
    });
  };

  render() {
    return (
      <View style={{ flex: 1 }}>
        <Sketch
          ref={sketch => {
            this.sketch = sketch;
          }}
          strokeColor="#ff69b4"
          strokeThickness={3}
        />
        <Button onPress={this.save} title="Save" />
      </View>
    );
  }
}

API

Here are the props of the the component:

NameTypeDefault valueComment
fillColorStringnullThe color of the sketch background. Default to null to keep it transparent! Note: This is different from the style.backgroundColor property, as the former will be seen in your exported drawing image, whereas the latter is only used to style the view.
imageTypeStringpngThe type of image to export. Can be png or jpg. Default to png to get transparency out of the box.
onChangeFunction() => {}Callback function triggered after every change on the drawing. The function takes one argument: the actual base64 representation of your drawing.
onClearFunction() => {}Callback function triggered after a clear has been triggered.
strokeColorString'#000000'The stroke color you want to draw with.
strokeThicknessNumber1The stroke thickness, in pixels.
styleStyle objectnullSome View styles if you need.

The component also has some instance methods:

NameReturn typeComment
clear()PromiseClear the drawing. This method is a Promise mostly to be consistent with save(), but you could simply type: this.sketch.clear();
save()PromiseSave the drawing to an image, using the defined props as settings (imageType, fillColor, etc...). The Promise resolves with an object containing the path property of that image. Ex: this.sketch.save().then(image => console.log(image.path));

Examples

The project contains a folder examples that contains few demos of how to use react-native-sketch. Just copy and paste the code to your React Native application.

Feel free to play with them!

Known issues

Notes

Contributing

Feel free to contribute by sending a pull request or creating an issue.

License

MIT