All files / web/modules/homepage/components Homepage.tsx

0% Statements 0/27
0% Branches 0/2
0% Functions 0/6
0% Lines 0/22

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73                                                                                                                                                 
import Col from 'antd/lib/grid/col';
import Row from 'antd/lib/grid/row';
import * as React from 'react';
import { Query } from 'react-apollo';
import styled from 'styled-components';
import { IArticle } from '../../../../shared';
import ErrorMessage from '../../components/ErrorMessage';
import Loader from '../../components/Loader';
import LoadMoreContainer from '../../components/LoadMoreContainer';
import Page from '../../components/Page';
import { HOMEPAGE_ARTICLE_COUNT, HOMEPAGE_ARTICLES } from '../queries';
import ListItem from './ListItem';
 
interface IListProps {
  dataSource: any;
}
 
const Title = styled.div`
  margin: 0 0 0 15px;
  font-size: 16px;
  text-transform: uppercase;
`;
 
const List = ({ dataSource }: IListProps) => (
  <Row>
    <Col span={8}>
      <Title>Zákulisí</Title>
      {dataSource.zakulisi.map((article: IArticle) => (
        <ListItem key={article._id} {...article} />
      ))}
    </Col>
    <Col span={8}>
      <Title>Recenze</Title>
      {dataSource.recenze.map((article: IArticle) => (
        <ListItem key={article._id} {...article} />
      ))}
    </Col>
    <Col span={8}>
      <Title>Přehledy</Title>
      {dataSource.prehledy.map((article: IArticle) => (
        <ListItem key={article._id} {...article} />
      ))}
    </Col>
  </Row>
);
 
const Homepage = () => (
  <Page>
    <Query query={HOMEPAGE_ARTICLE_COUNT}>
      {({ loading, error, data }) => {
        if (error) {
          return <ErrorMessage message={error.message} />;
        }
 
        if (loading) {
          return <Loader />;
        }
 
        return (
          <LoadMoreContainer
            query={HOMEPAGE_ARTICLES}
            queryVariables={{}}
            size={data.homepageArticleCount}
            listComponent={List}
          />
        );
      }}
    </Query>
  </Page>
);
 
export default Homepage;