import React, {Fragment} from 'react'; import {DataTablePage} from '../../datatable/page/data-table-page'; import {IconButton} from '../../ui/buttons/icon-button'; import {FormattedDate} from '../../i18n/formatted-date'; import {ColumnConfig} from '../../datatable/column-config'; import {Trans} from '../../i18n/trans'; import {DeleteSelectedItemsAction} from '../../datatable/page/delete-selected-items-action'; import {DataTableEmptyStateMessage} from '../../datatable/page/data-table-emty-state-message'; import {DialogTrigger} from '../../ui/overlays/dialog/dialog-trigger'; import {FileEntry} from '../../uploads/file-entry'; import {NameWithAvatar} from '../../datatable/column-templates/name-with-avatar'; import {User} from '../../auth/user'; import {CheckIcon} from '../../icons/material/Check'; import {CloseIcon} from '../../icons/material/Close'; import {FormattedBytes} from '../../uploads/formatted-bytes'; import {VisibilityIcon} from '../../icons/material/Visibility'; import uploadSvg from './upload.svg'; import {FilePreviewDialog} from '../../uploads/preview/file-preview-dialog'; import {FILE_ENTRY_INDEX_FILTERS} from './file-entry-index-filters'; import {FileTypeIcon} from '../../uploads/file-type-icon/file-type-icon'; const columnConfig: ColumnConfig[] = [ { key: 'name', allowsSorting: true, visibleInMode: 'all', width: 'flex-3 min-w-200', header: () => , body: entry => (
{entry.name}
{entry.file_name}
), }, { key: 'owner_id', allowsSorting: true, width: 'flex-3 min-w-200', header: () => , body: entry => { const user = entry.users?.[0] as User; if (!user) return null; return ( ); }, }, { key: 'type', width: 'w-100 flex-shrink-0', allowsSorting: true, header: () => , body: entry => (
{entry.type}
), }, { key: 'public', allowsSorting: true, width: 'w-60 flex-shrink-0', header: () => , body: entry => entry.public ? ( ) : ( ), }, { key: 'file_size', allowsSorting: true, maxWidth: 'max-w-100', header: () => , body: entry => , }, { key: 'updated_at', allowsSorting: true, width: 'w-100', header: () => , body: entry => , }, { key: 'actions', header: () => , hideHeader: true, align: 'end', width: 'w-42 flex-shrink-0', visibleInMode: 'all', body: entry => { return ( ); }, }, ]; export function FileEntryIndexPage() { return ( } columns={columnConfig} filters={FILE_ENTRY_INDEX_FILTERS} selectedActions={} emptyStateMessage={ } filteringTitle={} /> } /> ); }