/** * * {{properCase name }} * */ import React from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; {{#if wantHeaders}} import { Helmet } from 'react-helmet'; {{/if}} {{#if wantMessages}} import { FormattedMessage } from 'react-intl'; {{/if}} {{#if wantActionsAndReducer}} import { createStructuredSelector } from 'reselect'; {{/if}} import { compose } from 'redux'; {{#if wantSaga}} import injectSaga from 'utils/injectSaga'; {{/if}} {{#if wantActionsAndReducer}} import injectReducer from 'utils/injectReducer'; import makeSelect{{properCase name}} from './selectors'; import reducer from './reducer'; {{/if}} {{#if wantSaga}} import saga from './saga'; {{/if}} {{#if wantMessages}} import messages from './messages'; {{/if}} function {{ properCase name }}() { return (
{{#if wantHeaders}} {{properCase name}} {{/if}} {{#if wantMessages}} {{/if}}
); } {{ properCase name }}.propTypes = { dispatch: PropTypes.func.isRequired, }; {{#if wantActionsAndReducer}} const mapStateToProps = createStructuredSelector({ {{ lowerCase name }}: makeSelect{{properCase name}}(), }); {{/if}} function mapDispatchToProps(dispatch) { return { dispatch, }; } {{#if wantActionsAndReducer}} const withConnect = connect(mapStateToProps, mapDispatchToProps); const withReducer = injectReducer({ key: '{{ lowerCase name }}', reducer }); {{else}} const withConnect = connect(null, mapDispatchToProps); {{/if}} {{#if wantSaga}} const withSaga = injectSaga({ key: '{{ lowerCase name }}', saga }); {{/if}} export default compose( {{#if wantActionsAndReducer}} withReducer, {{/if}} {{#if wantSaga}} withSaga, {{/if}} withConnect, )({{ properCase name }});