0.1.6 • Published 2 months ago

react-native-svg-editor v0.1.6

Weekly downloads
-
License
MIT
Repository
-
Last release
2 months ago

React Native Svg Editor

A react native component that lets you display & edit svg files graphically.

:warning: This library was originally built for personal use. The documentation is minimal so be prepared to do a lot of code digging!

Installation

npm i react-native-svg-editor --save
yarn add react-native-svg-editor

Install peer dependencies

npm i react-native-svg react-native-haptic-feedback react-native-view-shot react-native-gesture-handler react-native-fs --save
yarn add react-native-svg react-native-haptic-feedback react-native-view-shot react-native-gesture-handler react-native-fs

If you are developing for iOS devices on Mac, do pod install after installing peer dependencies

cd ios && pod install && cd ../

React Native Gesture Handler Installation

Add GestureHandlerRootView according to react-native-gesture-handler instructions: https://docs.swmansion.com/react-native-gesture-handler/docs/fundamentals/installation

Usage

import SvgEditor from 'react-native-svg-editor';

const EditorView = () => {
  const canvasRef = useRef(null);
  const svg = `<svg width="400" height="180" xmlns="http://www.w3.org/2000/svg"><rect x="50" y="20" rx="20" ry="20" width="150" height="150" style="fill:red;stroke:black;stroke-width:5;opacity:0.5" /></svg>`

  const changeSelectedElementOpacity = (opacity) => {
    // set the selected elements opacity
    /*
      setting the element's attributes causes state change and thus re-renders the whole svg tree.
      use the function `updateSelectedElementAttributes(attributes)` to update the element's internal attributes
    */
    canvasRef.current.setSelectedElementAttributes({ opacity });
  };

  const undo = () => {
    canvasRef.current.undo();
  };

  const redo = () => {
    canvasRef.current.redo();
  };

  return (
    <View>
      <SvgEditor
        ref={canvasRef}
        svg={svg} />
    </View>
  );
}

Live Demo

You can try out the SVG Editor app on Google Play and Apple App Store. React Native SVG Editor is the core that powers everything related to svg editing.

Contribute

This project was originally created for my personal applications. It was getting harder as harder to maintain as the size of the library grew, so I figured it's best to make the library open sourced so anyone interested can take part in the project. Documentation is minimal so contributions are welcomed. Please support the project by making Issues and PRs.

0.1.4

2 months ago

0.1.6

2 months ago

0.1.5

2 months ago

0.1.2

2 months ago

0.1.3

2 months ago

0.1.1

4 months ago