react-selections

2.1.8 • Public • Published

React Selections

Build Status Coverage Status

This is a library that provides a set of tools for drawing regions with cursor.

Example

Installation

npm install --save react-selections

Usage

You need to specify an area for the selections to be rendered inside of. Selections can't be drawn outside the container. The package provides a container component, which you should use to render as a parent node to your selections (and other components as well).

import { Selection, SelectionContainer } from 'react-selections';

You then simply wrap your area that you want to render selections above in the container:

 
const selectionArea = {
  id: 1,
  dimensions: {
    height: 150,
    width: 300
  },
  coordinates: {
    x: 100,
    y: 100
  },
};
 
...
<SelectionContainer>
  <Selection
    area={selectionArea}
    className="my-selection"
  />
  ...
  <AnyOtherComponent />
  ...
</SelectionContainer>
...

As you see you can render anything inside the container, it will recognize selections inside and pass them special props.

Interactive selections

If you need a selection to be draggable/resizable you need to specify it explicitly with an interactive boolean property.

<Selection interactive area={area} />

Then you have to provide a handler that is going to handle area updates.

...
 
constructor() {
  ...
 
  this.state = {
    selectionArea: { ... },
  };
}
 
...
 
handleSelectionAreaUpdate(selectionArea) {
  this.setState({ selectionArea });
}
 
render() {
  return (
    <SelectionContainer>
      ...
      <Selection
        interactive
        area={this.selectionArea}
        onAreaUpdate={this.handleSelectionAreaUpdate}
      />
    </SelectionContainer>
  );
}
 
...

...

Package Sidebar

Install

npm i react-selections

Weekly Downloads

2

Version

2.1.8

License

MIT

Unpacked Size

51.6 kB

Total Files

21

Last publish

Collaborators

  • dprovodnikov