react-dock
Resizable dockable react component.
Demo
http://alexkuz.github.io/react-dock/demo/
Install
$ npm i -S react-dock
Example
render() { return ( <Dock position='right' isVisible={this.state.isVisible}> {/* you can pass a function as a child here */} <div onClick={() => this.setState({ isVisible: !this.state.isVisible })}>X</div> </Dock> ); }
Dock Props
Prop Name | Description |
---|---|
position | Side to dock (left , right , top or bottom ). Default is left . |
fluid | If true , resize dock proportionally on window resize. |
size | Size of dock panel (width or height, depending on position ). If this prop is set, Dock is considered as a controlled component, so you need to use onSizeChange to track dock resizing. Value is a fraction of window width/height, if fluid is true, or pixels otherwise |
defaultSize | Default size of dock panel (used for uncontrolled Dock component) |
isVisible | If true , dock is visible |
dimMode | If none - content is not dimmed, if transparent - pointer events are disabled (so you can click through it), if opaque - click on dim area closes the dock. Default is opaque |
duration | Animation duration. Should be synced with transition animation in style properties |
dimStyle | Style for dim area |
dockStyle | Style for dock |
zIndex | Z-index for wrapper |
onVisibleChange | Fires when Dock wants to change isVisible (when opaque dim is clicked, in particular) |
onSizeChange | Fires when Dock wants to change size |
children | Dock content - react elements or function that returns an element. Function receives an object with these state values: { position, isResizing, size, isVisible } |