React-Maxwell-Modal Github Page
npm install react-maxwell-modal --save
There are four types of modals available
Prop | Type | Required |
---|---|---|
onShow | function | false |
onHide | function | true |
isOpen | bool | false |
shouldCloseOnOverlayClick | bool | false |
import { ContentModal } from 'react-maxwell-modal';
class ContentModalExample extends React.Component {
constructor(props) {
super(props);
this.state = {
isOpen: false
}
this.displayName = 'ContentModalExample';
this.toggleModal = this.toggleModal.bind(this);
}
toggleModal() {
this.setState({
isOpen: !this.state.isOpen
})
}
render() {
return (
<div className="ClickMeMaxwellModal">
<button onClick={this.toggleModal}>Load Modal</button>
<ContentModal
ref="mymodal"
isOpen={this.state.isOpen}
shouldCloseOnOverlayClick={true}
onHide={this.toggleModal}
>
<span>A bunch of useless stuff</span>
</ContentModal>
</div>
);
}
}
Prop | Type | Required |
---|---|---|
footer | ReactComponent/String | false |
onShow | function | false |
onHide | function | true |
title | string | false |
isOpen | bool | false |
dismissable | bool | false |
shouldCloseOnOverlayClick | bool | false |
import { MaxwellModal } from 'react-maxwell-modal';
class MaxwellModalExample extends React.Component {
constructor(props) {
super(props);
this.state = {
isOpen: false
}
this.displayName = 'MaxwellModalExample';
this.toggleModal = this.toggleModal.bind(this);
}
toggleModal() {
this.setState({
isOpen: !this.state.isOpen
})
}
render() {
return (
<div className="ClickMeMaxwellModal">
<button onClick={this.toggleModal}>Load Modal</button>
<MaxwellModal
ref="mymodal"
isOpen={this.state.isOpen}
title={"this is a title"}
shouldCloseOnOverlayClick={true}
onHide={this.toggleModal}
>
<span>A bunch of useless stuff</span>
</MaxwellModal>
</div>
);
}
}
A replacement for the confirm box.
This produces a modal with two buttons, yes
and no
. Their labels are configurable, as well as what occurs on yes
and no
.
####Props
Prop | Type | Required |
---|---|---|
onYes | function | false |
onNo | function | false |
yesLabel | string | false |
noLabel | string | false |
onShow | function | false |
onHide | function | true |
title | string | false |
isOpen | bool | false |
dismissable | bool | false |
shouldCloseOnOverlayClick | bool | false |
import { ConfirmModal } from 'react-maxwell-modal';
class ConfirmModalExample extends React.Component {
constructor(props) {
super(props);
this.state = {
isOpen: false
}
this.displayName = 'ConfirmModalExample';
this.toggleModal = this.toggleModal.bind(this);
this.onYes = this.onYes.bind(this);
this.onNo = this.onNo.bind(this);
}
onYes(closeModal) {
closeModal(true)
}
onNo(closeModal) {
closeModal(true)
}
toggleModal() {
this.setState({
isOpen: !this.state.isOpen
})
}
render() {
return (
<div className="ClickMeMaxwellModal">
<button onClick={this.toggleModal}>Load Modal</button>
<ConfirmModal
ref="mymodal"
isOpen={this.state.isOpen}
shouldCloseOnOverlayClick={true}
onHide={this.toggleModal}
onYes={this.onYes}
onNo={this.onNo}
>
<span>A bunch of useless stuff</span>
</ConfirmModal>
</div>
);
}
}
A replacement for the alert box
Prop | Type | Required |
---|---|---|
onYes | function | false |
yesLabel | string | false |
onShow | function | false |
onHide | function | true |
title | string | false |
isOpen | bool | false |
dismissable | bool | false |
shouldCloseOnOverlayClick | bool | false |
import { AlertModal } from 'react-maxwell-modal';
class AlertModalExample extends React.Component {
constructor(props) {
super(props);
this.state = {
isOpen: false
}
this.displayName = 'AlertModalExample';
this.toggleModal = this.toggleModal.bind(this);
this.onYes = this.onYes.bind(this);
}
onYes(closeModal) {
closeModal(true)
}
toggleModal() {
this.setState({
isOpen: !this.state.isOpen
})
}
render() {
return (
<div className="ClickMeMaxwellModal">
<button onClick={this.toggleModal}>Load Modal</button>
<AlertModal
ref="mymodal"
isOpen={this.state.isOpen}
shouldCloseOnOverlayClick={true}
onHide={this.toggleModal}
onYes={this.onYes}
>
<span>A bunch of useless stuff</span>
</AlertModal>
</div>
);
}
}