import { Directory, DirectoryFile } from '/lib/types.ts'; import { humanFileSize, TRASH_PATH } from '/lib/utils/files.ts'; interface ListFilesProps { directories: Directory[]; files: DirectoryFile[]; onClickDeleteDirectory: (parentPath: string, name: string) => Promise; onClickDeleteFile: (parentPath: string, name: string) => Promise; onClickOpenRenameDirectory: (parentPath: string, name: string) => void; onClickOpenRenameFile: (parentPath: string, name: string) => void; onClickOpenMoveDirectory: (parentPath: string, name: string) => void; onClickOpenMoveFile: (parentPath: string, name: string) => void; } export default function ListFiles( { directories, files, onClickDeleteDirectory, onClickDeleteFile, onClickOpenRenameDirectory, onClickOpenRenameFile, onClickOpenMoveDirectory, onClickOpenMoveFile, }: ListFilesProps, ) { const dateFormat = new Intl.DateTimeFormat('en-GB', { year: 'numeric', month: 'long', day: 'numeric', hour12: false, hour: '2-digit', minute: '2-digit', }); return (
{directories.map((directory) => { const fullPath = `${directory.parent_path}${directory.directory_name}/`; return ( ); })} {files.map((file) => ( ))} {directories.length === 0 && files.length === 0 ? ( ) : null}
Name Last update Size
Directory {directory.directory_name} {dateFormat.format(new Date(directory.updated_at))} - {fullPath === TRASH_PATH ? null : (
)}
File {file.file_name} {dateFormat.format(new Date(file.updated_at))} {humanFileSize(file.size_in_bytes)}
No files to show
); }