import React, { Fragment } from 'react'; import { useTranslation } from 'react-i18next'; import { useWindowInfo } from '@faceless-ui/window-info'; import Eyebrow from '../../../elements/Eyebrow'; import Paginator from '../../../elements/Paginator'; import ListControls from '../../../elements/ListControls'; import ListSelection from '../../../elements/ListSelection'; import Pill from '../../../elements/Pill'; import Button from '../../../elements/Button'; import { Table } from '../../../elements/Table'; import Meta from '../../../utilities/Meta'; import { Props } from './types'; import ViewDescription from '../../../elements/ViewDescription'; import PerPage from '../../../elements/PerPage'; import { Gutter } from '../../../elements/Gutter'; import { RelationshipProvider } from './RelationshipProvider'; import { getTranslation } from '../../../../../utilities/getTranslation'; import { StaggeredShimmers } from '../../../elements/ShimmerEffect'; import { SelectionProvider } from './SelectionProvider'; import EditMany from '../../../elements/EditMany'; import DeleteMany from '../../../elements/DeleteMany'; import PublishMany from '../../../elements/PublishMany'; import UnpublishMany from '../../../elements/UnpublishMany'; import formatFilesize from '../../../../../uploads/formatFilesize'; import './index.scss'; const baseClass = 'collection-list'; const DefaultList: React.FC = (props) => { const { collection, collection: { labels: { singular: singularLabel, plural: pluralLabel, }, admin: { description, components: { BeforeList, BeforeListTable, AfterListTable, AfterList, } = {}, } = {}, }, data, newDocumentURL, limit, hasCreatePermission, disableEyebrow, modifySearchParams, handleSortChange, handleWhereChange, handlePageChange, handlePerPageChange, customHeader, resetParams, } = props; const { breakpoints: { s: smallBreak } } = useWindowInfo(); const { t, i18n } = useTranslation('general'); let formattedDocs = data.docs || []; if (collection.upload) { formattedDocs = formattedDocs?.map((doc) => { return { ...doc, filesize: formatFilesize(doc.filesize), }; }); } return (
{Array.isArray(BeforeList) && BeforeList.map((Component, i) => ( ))} {!disableEyebrow && ( )}
{customHeader && customHeader} {!customHeader && (

{getTranslation(pluralLabel, i18n)}

{hasCreatePermission && ( {t('createNew')} )} {!smallBreak && ( )} {description && (
)}
)}
{Array.isArray(BeforeListTable) && BeforeListTable.map((Component, i) => ( ))} {!data.docs && ( )} {(data.docs && data.docs.length > 0) && ( )} {data.docs && data.docs.length === 0 && (

{t('noResults', { label: getTranslation(pluralLabel, i18n) })}

{hasCreatePermission && newDocumentURL && ( )}
)} {Array.isArray(AfterListTable) && AfterListTable.map((Component, i) => ( ))}
{data?.totalDocs > 0 && (
{(data.page * data.limit) - (data.limit - 1)} - {data.totalPages > 1 && data.totalPages !== data.page ? (data.limit * data.page) : data.totalDocs} {' '} {t('of')} {' '} {data.totalDocs}
{smallBreak && (
)}
)}
{Array.isArray(AfterList) && AfterList.map((Component, i) => ( ))} ); }; export default DefaultList;