react-drawable-overlay
v2.2.2
Published
A package for wrapping elements with a drawable canvas.
Readme
react-drawable-overlay
A package for wrapping an element with a drawable canvas.
Install
$ npm install --save react-drawable-overlay
$ yarn add react-drawable-overlayUsage
import React, { Component } from "react"
import { DrawableOverlay, useStage } from "react-drawable-overlay"
const Content = () => {
const stage = useStage()
return (
<React.Fragment>
<div style={{ position: "relative", height: 500, width: 500 }}>
{stage}
</div>
<p>
Content that cannot be drawn on but still has access to the
Context-values
</p>
<Toolbar />
</React.Fragment>
)
}
const Example = () => {
return (
<DrawableOverlay initialInDrawMode defaultBrushColor="#000">
<Content />
</DrawableOverlay>
)
}Props
| Prop | Type | Default | Description |
| ------------------- | ---------------------------- | ----------- | -------------------------------------------- |
| initialInDrawMode | boolean | false | Whether or not you can draw on the stage. |
| defaultBrushColor | string | #000000 | Hexadecimal color on the initial render. |
| children | node/node[] | undefined | All children have access to the context. |
| heightOffset | number | 0 | Used to narrow down drawable area in y-axis. |
| widthOffset | number | 0 | Used to narrow down drawable area in x-axis. |
| onAddToHistory | function(string/undefined) | undefined | Callback on brush stroke. |
State Context
| Key | Type | Description |
| ------------ | -------------------- | ----------------------------------------- |
| drawMode | "brush"/"eraser" | Current draw mode. |
| brushSize | number | Current size for the brush-tool. |
| eraserSize | number | Current size for the eraser-tool. |
| brushColor | string | Hexadecimal color. |
| inDrawMode | boolean | Whether or not the stage can be drawn on. |
Utils Context
| Key | Type | Description |
| ------------------- | ------------------------------ | --------------------------------------------------------------------------------- |
| reset | function() | Clear canvas. This also resets history and currentHistoryIndex. |
| setInitialDrawing | function(string) | Set a base-64 image as the initial drawing. Takes a base-64 image as an argument. |
| setDrawMode | function("brush"/"eraser") | Set drawMode. |
| setBrushSize | function(number) | Set brushSize. |
| setEraserSize | function(number) | Set eraserSize. |
| setBrushColor | function(string) | Set brushColor. Takes a hexadecimal color as an argument. |
| setInDrawMode | function(boolean) | Set inDrawMode. |
History Context
| Key | Type | Description |
| --------------------- | ------------ | ------------------------------------------ |
| undo | function() | Undo latest brush stroke or eraser stroke. |
| redo | function() | Redo latest brush stroke or eraser stroke. |
| currentHistoryIndex | number | Current index in history. |
| history | string[] | Array of base-64 images. |
Example
See the example-folder for an example on how to use the package.
License
MIT © SAITS
