1.1.1 • Published 8 years ago

react-selection-popover v1.1.1

Weekly downloads
11
License
MIT
Repository
github
Last release
8 years ago

react-selection-popover

Popover menu for selected text

Getting started

Add the SelectionPopover component as a sibling of the element that contains the selectable text. Add the data-selectable attribute to the element that contains the selectable text. Make sure the common parent has its position set to relative.

Add any children and props (including styling) to SelectionPopover.

import React from 'react';
import SelectionPopover from 'react-selection-popover'

export default class Demo extends React.Component {
  render() {
    state = {
      showPopover: false
    }
    return (
      <div style={{
        position: 'relative'
      }}>
        <div data-selectable>
          <p>
            This is the first selectable paragraph. Looking pretty good.
          </p>
          <p>
            Lorem ipsum dolor sit amet, consectetur adipisicing.
          </p>
        </div>
        <SelectionPopover
          showPopover={this.state.showPopover}
          onTextSelect={() => {this.setState({showPopover: true})}}
          onTextDeselect={() => {this.setState({showPopover: false})}}
        >
          <button>save</button>
          <button>share</button>
        </SelectionPopover>
      </div>
    )
  }
}

Props

propdescriptiontyperequired
topOffsetdistance from selection and top of box (default 30px)integerfalse
styleany ole style propobjectfalse
onTextDeselectfired when text selection is clearedfunctiontrue
onTextSelectfired when text is selectedfunction<selectedText: string>true
showPopovershows or hides the popoverbooleantrue

You can pass any other div compatible props

Contributing

Clone repo then

npm install
npm start

TODO

  • add tests
  • disable user selection for children of popover

License

react-selection-popover is available under MIT. See LICENSE for more details.

1.1.1

8 years ago

1.1.0

8 years ago

1.0.0

8 years ago

0.0.7

8 years ago

0.0.6

8 years ago

0.0.5

8 years ago

0.0.4

8 years ago

0.0.3

8 years ago

0.0.2

8 years ago

0.0.1

8 years ago