/*
* HomePage
*/
import React from 'react';
import { connect } from 'react-redux';
import { createStructuredSelector } from 'reselect';
import PluginHeader from 'components/PluginHeader';
import Container from 'components/Container';
import RightContentTitle from 'components/RightContentTitle';
import RightContentSectionTitle from 'components/RightContentSectionTitle';
import { injectIntl, intlShape, FormattedMessage } from 'react-intl';
import appMessages from 'containers/App/messages.json';
import messages from './messages.json';
import { define } from '../../i18n';
define(messages);
import {
// selectHome,
selectLoading,
selectError,
// selectGeneralSettings,
selectName,
selectDescription,
selectVersion,
// selectLocationState,
} from './selectors';
import {
loadGeneralSettings,
changeName,
changeDescription,
changeVersion,
updateGeneralSettings,
cancelGeneralSettings,
} from './actions';
import styles from './styles.scss';
export class HomePage extends React.Component {
componentDidMount() {
this.props.onPageLoad();
}
render() {
const { formatMessage } = this.props.intl;
return (
);
}
}
HomePage.propTypes = {
// changeRoute: React.PropTypes.func,
description: React.PropTypes.oneOfType([
React.PropTypes.string,
React.PropTypes.bool,
]),
// error: React.PropTypes.oneOfType([
// React.PropTypes.object,
// React.PropTypes.bool,
// ]),
intl: intlShape.isRequired,
// loading: React.PropTypes.bool,
name: React.PropTypes.oneOfType([
React.PropTypes.string,
React.PropTypes.bool,
]),
// onCancel: React.PropTypes.func,
onChangeName: React.PropTypes.func,
onChangeDescription: React.PropTypes.func,
onChangeVersion: React.PropTypes.func,
onFormSubmit: React.PropTypes.func,
onPageLoad: React.PropTypes.func,
version: React.PropTypes.oneOfType([
React.PropTypes.string,
React.PropTypes.bool,
]),
};
export function mapDispatchToProps(dispatch) {
return {
onCancel: () => dispatch(cancelGeneralSettings()),
onChangeName: (evt) => dispatch(changeName(evt.target.value)),
onChangeDescription: (evt) => dispatch(changeDescription(evt.target.value)),
onChangeVersion: (evt) => dispatch(changeVersion(evt.target.value)),
onFormSubmit: (evt) => {
if (evt !== undefined && evt.preventDefault) evt.preventDefault();
dispatch(updateGeneralSettings());
},
onPageLoad: (evt) => {
if (evt !== undefined && evt.preventDefault) evt.preventDefault();
dispatch(loadGeneralSettings());
},
dispatch,
};
}
const mapStateToProps = createStructuredSelector({
name: selectName(),
description: selectDescription(),
error: selectError(),
loading: selectLoading(),
version: selectVersion(),
});
// Wrap the component to inject dispatch and state into it
export default connect(mapStateToProps, mapDispatchToProps)(injectIntl(HomePage));