redux-devtools/src/createDevTools.js

47 lines
1.1 KiB
JavaScript
Raw Normal View History

import createAll from 'react-redux/lib/components/createAll';
import { ActionCreators } from './devTools';
export default function createDevTools(React) {
const { PropTypes, Component } = React;
2015-09-01 04:40:45 +03:00
const { connect } = createAll(React);
2015-08-07 19:49:40 +03:00
@connect(
state => state,
ActionCreators
)
class DevTools extends Component {
render() {
const { monitor: Monitor } = this.props;
return <Monitor {...this.props} />;
}
}
return class DevToolsWrapper extends Component {
static propTypes = {
monitor: PropTypes.func.isRequired,
store: PropTypes.shape({
devToolsStore: PropTypes.shape({
dispatch: PropTypes.func.isRequired
}).isRequired
}).isRequired
};
constructor(props, context) {
if (props.store && !props.store.devToolsStore) {
console.error(
'Could not find the devTools store inside your store. ' +
2015-09-01 04:40:45 +03:00
'Have you applied devTools() store enhancer?'
);
}
super(props, context);
}
render() {
return (
2015-09-01 04:40:45 +03:00
<DevTools {...this.props}
store={this.props.store.devToolsStore} />
);
}
};
}