import {useSelectedEntryParent} from '@app/drive/files/use-selected-entries'; import {useNavigate} from '@common/utils/hooks/use-navigate'; import React, {ReactNode, useMemo} from 'react'; import {prettyBytes} from '@common/uploads/utils/pretty-bytes'; import {Trans} from '@common/i18n/trans'; import {Button} from '@common/ui/buttons/button'; import {FolderIcon} from '@common/icons/material/Folder'; import { getPathForFolder, RootFolderPage, } from '@app/drive/drive-page/drive-page'; import {FormattedDate} from '@common/i18n/formatted-date'; import {DriveEntry} from '@app/drive/files/drive-entry'; import {FileThumbnail} from '@common/uploads/file-type-icon/file-thumbnail'; import {GroupsIcon} from '@common/icons/material/Groups'; import {Tooltip} from '@common/ui/tooltip/tooltip'; import {Avatar} from '@common/ui/images/avatar'; import {driveState} from '@app/drive/drive-store'; import {DetailsSidebarHeader} from '@app/drive/details-sidebar/details-sidebar-header'; import {DetailsSidebarSectionHeader} from '@app/drive/details-sidebar/details-sidebar-section-header'; import {DetailsSidebarTags} from '@app/drive/details-sidebar/details-sidebar-tags'; interface EntryPropertiesProps { entry: DriveEntry; } export function DetailsSidebarProperties({entry}: EntryPropertiesProps) { return (
{entry.type === 'image' && ( )}
{entry.workspace_id ? (
) : null} {entry.users.map(user => ( ))}
{entry.permissions['files.update'] && ( )}
); } interface Props { entry: DriveEntry; } function PropertyList({entry}: Props) { const parent = useSelectedEntryParent(); const navigate = useNavigate(); const owner = entry.users.find(user => user.owns_entry); const prettySize = useMemo( () => prettyBytes(entry.file_size), [entry.file_size] ); return (
} value={ } /> } value={entry.file_size ? prettySize : '-'} /> } value={ } /> {owner && ( } value={owner.display_name} /> )} } value={} /> } value={} />
); } interface PropertyItemProps { label: ReactNode; value: ReactNode; } function PropertyItem({label, value}: PropertyItemProps) { return (
{label}
{value}
); }