1.0.0 • Published 4 years ago
react-modal-touch v1.0.0
react-modal-touch 
Accessible modal dialog component for React. See the demo
Touch feature support
- touch drag to move the modal
- touch drag on the cursor in bottom to resize
Keyboard feature support
- arrowLeft: move left 20px
- arrowRight: move right 20px
- arrowUp: move up 20px
- arrowDown: move down 20px
- ctrl + arrowLeft: decrease width 20px
- ctrl + arrowRight: increase width 20px
- ctrl + arrowUp: increase height 20px
- ctrl + arrowDown: decrease height 20px
Table of Contents
Installation
To install, you can use npm or yarn:
$ npm install react-modal-touch
$ yarn add react-modal-touchUsage
The Modal object has two required prop:
isOpento render its children.onRequestCloseto close the modal.
Optional prop:
minWidthThe minimum width of the modal(default 0).minHeightThe minimum height of the modal(default 0).initWidthThe initial width of the modal(default 800).initHeightThe initial width of the modal(default 400).topThe position of the modal.leftThe position of the modal.disableMoveto disable the drag function(default false).disableResizeto disable the resize function(default false).disableVerticalResizeto disable the vertical resize function(default false).disableHorizontalResizeto disable the horizontal resize function(default false).disableVerticalMoveto disable the vertical drop function(default false).disableHorizontalMoveto disable the horizontal drop function(default false).disableKeystroketo disable keystroke listener(default false).onFocuscalled when the modal is clicked.classNameThe additional class to the modal.
Example:
<FlexibleModal
isOpen={bool}
onRequestClose={this.closeModal}
onFocus={() => console.log("Modal is clicked")}
className={"my-modal-custom-class"}
initWidth={800}
initHeight={400}
>
<h1>Modal Content</h1>
<p>Etc.</p>
</FlexibleModal>Examples
Inside an app:
import React, {Component} from 'react';
import './App.css';
import FlexibleModal from 'react-modal-touch';
class App extends Component {
constructor() {
super();
this.state = {
modalIsOpen: false
};
this.openModal = this.openModal.bind(this);
this.closeModal = this.closeModal.bind(this);
}
openModal() {
this.setState({modalIsOpen: true});
}
closeModal() {
this.setState({modalIsOpen: false});
}
render() {
return (
<div className="App">
<button
onClick={this.openModal}
>
Open modal
</button>
<FlexibleModal initWidth={800} initHeight={400}
onFocus={() => console.log("Modal is clicked")}
className={"my-modal-custom-class"}
onRequestClose={this.closeModal}
isOpen={this.state.modalIsOpen}>
<h3>Flexible Modal</h3>
<div className="body">
<p>This is the modal's body.</p>
</div>
<button
onClick={this.closeModal}
>
Close modal
</button>
</FlexibleModal>
</div>
);
}
}
export default App;