react-tether-seb
Version:
Drop content anywhere on the page.
94 lines (63 loc) • 2.09 kB
Markdown
[](https://david-dm.org/souporserious/react-tether)
React wrapper around [Tether](https://github.com/hubspot/tether) from Hub Spot.

`npm install react-tether --save`
`bower install react-tether --save`
```javascript
import TetherComponent from 'react-tether'
class SimpleDemo extends React.Component {
constructor(props) {
super(props)
this.state = {
isOpen: false
}
}
render() {
const { isOpen } = this.state
return(
<TetherComponent
attachment="top center"
constraints={[{
to: 'scrollParent',
attachment: 'together'
}]}
>
{ /* First child: This is what the item will be tethered to */ }
<button onClick={() => {this.setState({isOpen: !isOpen})}}>
Toggle Tethered Content
</button>
{ /* Second child: If present, this item will be tethered to the the first child */ }
{
isOpen &&
<div>
<h2>Tethered Content</h2>
<p>A paragraph to accompany the title.</p>
</div>
}
</TetherComponent>
)
}
}
```
The first child is used as the Tether's `target` and the second child (which is optional) is used as Tether's `element` that will be moved.
The tag that is used to render the Tether element, defaults to `div`.
Where in the DOM the Tether element is appended. Passes in any valid selector to `document.querySelector`. Defaults to `document.body`.
Any valid [Tether options](http://tether.io/#options).
clone repo
`git clone git@github.com:souporserious/react-tether.git`
move into folder
`cd ~/react-tether`
install dependencies
`npm install`
run dev mode
`npm run dev`
open your browser and visit: `http://localhost:8080/`