- {/* Toolbar above table */}
{
)}
- {/* Table content */}
setSelectedFiles(rows as UserFile[])}
- rowDraggable={true}
- onRowDragStart={_onRowDragStart}
- getRowDataAttributes={(row: UserFile) =>
- ({ highlighted: row.id === highlightedFileId ? 'true' : 'false' })
- }
- actionButtons={[
- ...(canUpdate ? [{
- type: 'edit' as const,
- onAction: handleEditClick,
- title: t('Bearbeiten'),
- }] : []),
- ...(canDelete ? [{
- type: 'delete' as const,
- title: t('LΓΆschen'),
- loading: (row: UserFile) => deletingFiles.has(row.id),
- }] : []),
- ]}
- customActions={[
- {
- id: 'download',
- icon: ,
- onClick: handleDownload,
- title: t('Herunterladen'),
- loading: (row: UserFile) => downloadingFiles.has(row.id),
- },
- {
- id: 'preview',
- icon: ,
- onClick: handlePreview,
- title: t('Vorschau'),
- loading: (row: UserFile) => previewingFiles.has(row.id),
- },
- ]}
- onDelete={handleDelete}
- onDeleteMultiple={handleDeleteMultiple}
- hookData={{
- refetch: _tableRefetch,
- pagination,
- permissions,
- handleDelete: handleFileDelete,
- handleInlineUpdate,
- updateOptimistically: updateFileOptimistically,
- }}
- emptyMessage={t('Keine Dateien gefunden')}
- />
+ data={tableFiles || []}
+ columns={columns}
+ apiEndpoint="/api/files/list"
+ loading={tableLoading}
+ pagination={true}
+ pageSize={25}
+ searchable={true}
+ filterable={true}
+ sortable={true}
+ selectable={true}
+ onRowSelect={(rows) => setSelectedFiles(rows as UserFile[])}
+ rowDraggable={true}
+ onRowDragStart={_onRowDragStart}
+ getRowDataAttributes={(row: UserFile) =>
+ ({ highlighted: row.id === highlightedFileId ? 'true' : 'false' })
+ }
+ actionButtons={[
+ ...(canUpdate ? [{
+ type: 'edit' as const,
+ onAction: handleEditClick,
+ title: t('Bearbeiten'),
+ }] : []),
+ ...(canDelete ? [{
+ type: 'delete' as const,
+ title: t('LΓΆschen'),
+ loading: (row: UserFile) => deletingFiles.has(row.id),
+ }] : []),
+ ]}
+ customActions={[
+ {
+ id: 'download',
+ icon: ,
+ onClick: handleDownload,
+ title: t('Herunterladen'),
+ loading: (row: UserFile) => downloadingFiles.has(row.id),
+ },
+ {
+ id: 'preview',
+ icon: ,
+ onClick: handlePreview,
+ title: t('Vorschau'),
+ loading: (row: UserFile) => previewingFiles.has(row.id),
+ },
+ ]}
+ onDelete={handleDelete}
+ onDeleteMultiple={handleDeleteMultiple}
+ hookData={{
+ refetch: _tableRefetch,
+ pagination,
+ permissions,
+ handleDelete: handleFileDelete,
+ handleInlineUpdate,
+ updateOptimistically: updateFileOptimistically,
+ }}
+ emptyMessage={t('Keine Dateien gefunden')}
+ />