contiago-toolbar
Version:
One of the options for outputting content from contiago xml-server
61 lines (54 loc) • 1.9 kB
JavaScript
import React from 'react';
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import moment from 'moment';
import { createStructuredSelector } from 'reselect';
import { compose } from 'redux';
import ArticleContainer from 'components/ArticleContainer';
import Article from 'components/Article';
import { push } from 'utils/router/actions';
import { makeSelectToolbarConfig } from 'containers/App/selectors';
import Link from 'containers/ArticlePage/components/Link';
import Container from './components/Container';
import Title from './components/Title';
import Footer from './components/Footer';
export class HomePage extends React.Component { // eslint-disable-line react/prefer-stateless-function
render() {
const { push, outputConfig } = this.props;
return (
<Container>
<Title>{outputConfig.headline}</Title>
<ArticleContainer>
{outputConfig && outputConfig.outputRubricList ?
outputConfig.outputRubricList.map((rubric) => (
<Article push={push} rubric={rubric} key={rubric.id} />
)) : null }
</ArticleContainer>
<Footer>
<Link target="_blank" href="https://www.contiago.de">
{`© 2018 Contiago News-Service, letzte Aktualisierung
${moment(parseInt(outputConfig.updated, 10)).format('DD.MM.YYYY/HH:mm')} Uhr`}
</Link>
</Footer>
</Container>
);
}
}
HomePage.propTypes = {
dispatch: PropTypes.func.isRequired,
outputConfig: PropTypes.object,
push: PropTypes.func,
};
const mapStateToProps = createStructuredSelector({
outputConfig: makeSelectToolbarConfig(),
});
function mapDispatchToProps(dispatch) {
return {
dispatch,
push: (number) => dispatch(push(number)),
};
}
const withConnect = connect(mapStateToProps, mapDispatchToProps);
export default compose(
withConnect,
)(HomePage);