react-drag-drawer-mo
v3.2.2
Published
Draggable react drawer
Downloads
2
Maintainers
Readme
react-drag-drawer
Mobile draggable drawer that falls back to modals on desktop
Install
$ npm install react-drag-drawer --save
Usage
import Drawer from 'react-drag-drawer'
..
toggle = () => {
let { toggle } = this.state
this.setState({ toggle: !toggle })
}
render () {
const { open } = this.state
return (
<Drawer
open={open}
onRequestClose={this.toggle}
>
<div>Hey Im inside the drawer!</div>
</Drawer>
)
}
API
| Param | Type | functionality | required | |----------------|---------|-----------------|-----------------| | open | Boolean | null | true | | children | Node | null | true | | onRequestClose | Function| null | true | | onDrag | Function| invoked on drag | false | | onOpen | Function| invoked on drawer focus | false | | notifyWillClose | Function| notify consumer if the drawer will close at touch release | false | | allowClose | Boolean | block closing if allowClose={false}, default is true | false | | modalElementClass | String | className to be applied to top element | false | | containerElementClass | String | className to be applied to the drawer container element | false | | parentElement | ref | block scrolls on element if you're not using body scrolling | false | | direction | String | direction to translate drawer | false | | dontApplyListeners | Boolean | skip applying internal event listeners to the dom | false | | inViewportChange | Function | detect when drawer is at top of viewport | false | | getModalRef | Function | get modal (draggable element) ref | false | | getContainerRef | Function | get container (overlay) ref | false |
Example modal style
.modal {
outline: none;
background: white;
font-size: 1.6rem;
width: 76rem;
max-width: 90%;
display: flex;
justify-content: space-between;
flex-direction: column;
z-index: 15;
min-height: 47rem;
will-change: transform;
transform: translate3d(0, 0, 0);
}
@media (max-width: 768px) {
.modal {
width: 100%;
max-width: 100%;
margin-bottom: 0;
border-top-left-radius: 8px;
border-top-right-radius: 8px;
}
}
License
MIT © Jack Hanford