UNPKG

react-highlight-pop

Version:

React component for 'medium-like' text highlight

83 lines (71 loc) 2.85 kB
# react-highlight-pop > React component for "medium-like" text highlight [![](https://img.shields.io/npm/v/react-highlight-pop.svg?style=popout)](https://www.npmjs.com/package/react-highlight-pop) [![](https://img.shields.io/travis/codeshifu/react-highlight-pop.svg?style=popout)](https://travis-ci.org/codeshifu/react-highlight-pop) [![](https://img.shields.io/coveralls/github/codeshifu/react-highlight-pop.svg?style=popout)](https://coveralls.io/github/codeshifu/react-highlight-pop) [![semantic-release](https://img.shields.io/badge/%20%20%F0%9F%93%A6%F0%9F%9A%80-semantic--release-e10079.svg)](https://github.com/semantic-release/semantic-release) A configurable text highlight component with zero dependencies ![demo](https://user-images.githubusercontent.com/5154605/52847235-ebae9800-310b-11e9-9387-e3797fa4bdae.gif) ## Installation ```bash npm install react-highlight-pop ``` ## Usage 1. Import/require `react-highlight-pop` after installation ```javascript import HighlightPop from 'react-highlight-pop'; ``` or ```javascript const HighlightPop = require('react-highlight-pop'); ``` 2. Wrap the text you want to be highlightable with `react-highlight-pop` ```javascript const App = () => { return ( <HighlightPop> <p>You can highlight me</p> <p>I will show a popover when you highlight me</p> </HighlightPop> ) } ``` ### Custom popover items You can define custom popover items by defining the `popoverItems` prop, whose value is a function that returns jsx. NOTE: You should always pass your custom popover items. Example ```javascript const App = () => { return ( <HighlightPop popoverItems={itemClass => ( <Fragment> <span className={itemClass} onClick={() => alert('sharing')}> share </span> </Fragment> )}> <p>You can highlight me</p> <p>I will show a popover when you highlight me</p> </HighlightPop> ) } ``` # API ## Props prop|value|description ---|---|--- popoverItems|function| A function that returns jsx. Returned jsx display as popover items when a text is highlighted. onHighlightPop|function| Callback function that's invoked whenever a text is highlighted. children|node| The text/group of text that's highlightable ## Contributing 1. Fork the repo 2. Create your feature branch (`git checkout -b my-awesome-feature`) 3. Make changes to the lib file `src/lib/index.js` 4. Write test for changes/features added in `__tests__/HighlightPop.test.js` 5. Commit your changes (`git commit -am 'Awesome feature added'`) 6. Push to the branch (`git push origin my-awesome-feature`) 7. Raise a Pull Request ## License [MIT](https://github.com/codeshifu/react-highlight-pop/blob/master/LICENSE.md)