2020-03-05 22:11:25 +01:00
|
|
|
import React from 'react';
|
2020-03-13 03:27:48 +01:00
|
|
|
import PropTypes from 'prop-types';
|
|
|
|
|
import classnames from 'classnames';
|
|
|
|
|
|
2020-03-05 22:11:25 +01:00
|
|
|
import Header from './components/Header';
|
|
|
|
|
import StudyListFilter from './components/StudyListFilter';
|
|
|
|
|
import StudyListTable from './components/StudyListTable';
|
|
|
|
|
import StudyListPagination from './components/StudyListPagination';
|
|
|
|
|
|
2020-03-13 03:27:48 +01:00
|
|
|
const StudyList = ({ studies, perPage }) => {
|
|
|
|
|
const studiesData = studies.slice(0, perPage);
|
|
|
|
|
const numOfStudies = studies.length;
|
|
|
|
|
const isEmptyStudies = numOfStudies === 0;
|
2020-03-05 22:11:25 +01:00
|
|
|
return (
|
2020-03-13 03:27:48 +01:00
|
|
|
<div
|
|
|
|
|
className={classnames('bg-black h-full', {
|
|
|
|
|
'h-screen': isEmptyStudies,
|
|
|
|
|
})}
|
|
|
|
|
>
|
2020-03-05 22:11:25 +01:00
|
|
|
<Header />
|
2020-03-13 03:27:48 +01:00
|
|
|
<StudyListFilter numOfStudies={numOfStudies} />
|
|
|
|
|
<StudyListTable studies={studiesData} numOfStudies={numOfStudies} />
|
|
|
|
|
{!isEmptyStudies && <StudyListPagination />}
|
2020-03-05 22:11:25 +01:00
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
2020-03-13 03:27:48 +01:00
|
|
|
StudyList.defaultProps = {
|
|
|
|
|
studies: [],
|
|
|
|
|
perPage: 25,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
StudyList.propTypes = {
|
|
|
|
|
studies: PropTypes.array,
|
|
|
|
|
perPage: PropTypes.number,
|
|
|
|
|
};
|
|
|
|
|
|
2020-03-05 22:11:25 +01:00
|
|
|
export default StudyList;
|