All files / web/modules/admin/article/list ArticleList.tsx

0% Statements 0/25
100% Branches 0/0
0% Functions 0/6
0% Lines 0/21

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 74 75 76 77 78 79                                                                                                                                                             
import * as React from 'react';
import { Query } from 'react-apollo';
import { connect } from 'react-redux';
import { IArticle } from '../../../../../shared';
import { IState } from '../../../../types';
import { selectUserSub } from '../../../auth/reducer';
import ArticleCategory from '../../../components/ArticleCategory';
import ArticleStatus from '../../../components/ArticleStatus';
import ErrorMessage from '../../../components/ErrorMessage';
import Table from '../../../components/Table';
import { SETTINGS_ARTICLES } from '../../queries';
import CreateArticle from '../create/CreateArticle';
import EditArticle from '../edit/EditArticle';
import DeleteArticleButton from './DeleteArticleButton';
 
const columns = [
  {
    title: 'Název',
    dataIndex: 'title',
  },
  {
    title: 'Status',
    dataIndex: 'status',
    render: (text: string, record: IArticle) => (
      <ArticleStatus value={record.status} />
    ),
  },
  {
    title: 'Kategorie',
    dataIndex: 'category.title',
    render: (text: string, record: IArticle) => (
      <ArticleCategory type={record.type} category={record.category} />
    ),
  },
  {
    title: 'Akce',
    dataIndex: '_id',
    render: (text: string, record: IArticle) => (
      <React.Fragment>
        <EditArticle article={record} />
        <DeleteArticleButton {...record} />
      </React.Fragment>
    ),
  },
];
 
interface IProps {
  userSub: string;
}
 
const ArticleList = ({ userSub }: IProps) => (
  <React.Fragment>
    <CreateArticle />
    <Query query={SETTINGS_ARTICLES} variables={{ userSub }} ssr={false}>
      {({ loading, error, data }) => {
        if (error) {
          return <ErrorMessage message={error.message} />;
        }
 
        return (
          <Table
            rowKey="_id"
            loading={loading}
            dataSource={data.articles}
            columns={columns}
          />
        );
      }}
    </Query>
  </React.Fragment>
);
 
export default connect(
  (state: IState) => ({
    userSub: selectUserSub(state),
  }),
  {},
)(ArticleList);