rd-react-overlay
Overlay component that allows open a component in popup for React.js.
Installation
npm i rd-react-overlay --save
Code Example
Demo
Code
First of all you'll need to add OverlayContainer, Overlay, Alignment, AlignType
to your application module.
;
After that import add visible
and alignment
states to your component.
this.state =
Of course you need to add this states to your interface if you use TypeScript or PropTypes.
After that you should add this template to component render:
this.setState({visible: true})}>Open popup this.setState({visible: clickedOnContainer})} alignment={this.state.alignment}> { (left, top) => }
The first element button
could be any other element or elements. This element or elements will be a target for <ComponentThatShouldBeInPopup/>
that will align with.
Instead of button
element there is can be <div>hello, world</div><div>hello, again</div>
or whatever. Don't forget to add element that will triggering visible
state.
This styles <div style={({position: 'absolute', top: top, left: left})}>
generating depends on alignment
state. You can position the popup whenever you want. In this case you dont need anymore alignment
state.
{position: 'absolute' | 'relative' | 'fixed', top: number, left: number}
API Reference
Property | Type | Default | Description |
---|---|---|---|
visible |
boolean | undefined |
Visible state for content in the |
alignment |
Alignment | defaultAlign: Alignment = {element: {horizontal: AlignType.Left,vertical: AlignType.Top},target: {horizontal: AlignType.Left,vertical: AlignType.Bottom}}; |
Align popup with |
onClickOutside |
(ClickedOnContainer: boolean) => void |
(clickedOnContainer) => this.setState({visible: clickedOnContainer}) |
Close popup if clicked out of popup and container. |
License
This project is licensed under the MIT license. See the LICENSE file for more info.