NOT MAINTAINED
react-redux-modal
demo
Implementation Guide
1. Installation
npm install --save react-redux-modal
react-redux-modal
css link to your app
2. Add the <link href="http://diegoddox.github.io/react-redux-modal/0.5/react-redux-modal.min.css" rel="stylesheet" type="text/css">
react-redux-modal
reducer
to Redux.
3. The third thing you need to do is to add the import {createStore, combineReducers} from 'redux'
import {reducer as modalReducer} from 'react-redux-modal'
const reducers = {
// ... other reducers ...
modals: modalReducer // <- Mounted at modals.
}
const reducer = combineReducers(reducers)
const store = createStore(reducer)
react-redux-modal
is modals
.
NOTE: The default mount point for react-redux-modal
React component to the root of your app
4. Add the import {Provider} from 'react-redux'
import ReduxModal from 'react-redux-modal'
<Provider store={store}>
<div>
... other things like router ...
<ReduxModal />
</div>
</Provider>
react-redux-modal
modal
emitter
5. Add the The modal
method use eventemitter3 to dispatch the actions
import React, {Component} from 'react'
import {modal} from 'react-redux-modal' // The modal emitter
Create a component
that will be injected in the modal
class myModalComopnent extends Component {
constructor(props) {
super(props);
console.log('## MODAL DATA AND PROPS:', this.props);
}
removeThisModal() {
this.props.removeModal();
}
render() {
return (
<div>
<p>this is my modal</p>
<button
type="button"
onClick={this.removeThisModal.bind(this)}>
close this modal
</button>
</div>
);
}
}
export class YourComponent extends Component {
constructor(props) {
super(props);
}
addModal() {
modal.add(myModalComopnent, {
title: 'This is my modal',
size: 'medium', // large, medium or small,
closeOnOutsideClick: false // (optional) Switch to true if you want to close the modal by clicking outside of it,
hideTitleBar: false // (optional) Switch to true if do not want the default title bar and close button,
hideCloseButton: false // (optional) if you don't wanna show the top right close button
//.. all what you put in here you will get access in the modal props ;)
});
}
render() {
return <button onClick={this.addModal.bind(this)}>Add modal</button>;
}
}
The modal
add
method takes two arguments, first a react
component
and a object
that will specify the modal title
, size
and data
Run a local demo
git clone https://github.com/diegoddox/react-redux-modal.git
cd react-redux-modal
npm install
npm start
open your browser at http://localhost:3001
TODO
create test.