import { Box, Grid, Typography } from '@material-ui/core' import { Web } from '@material-ui/icons' import { ReactElement } from 'react' import { File, Folder } from 'react-feather' import { FitImage } from '../../components/FitImage' import { getHumanReadableFileSize } from '../../utils/file' import { AssetIcon } from './AssetIcon' import { shortenHash } from '../../utils/hash' interface Props { previewUri?: string metadata?: Metadata } // TODO: add optional prop for indexDocument when it is already known (e.g. downloading a manifest) export function AssetPreview({ metadata, previewUri }: Props): ReactElement | null { let previewComponent = let type = metadata?.type if (metadata?.isWebsite) { previewComponent = type = 'Website' } else if (metadata?.type === 'folder') { previewComponent = type = 'Folder' } return ( {previewUri ? ( ) : ( )} {metadata?.hash && Swarm Hash: {shortenHash(metadata.hash)}} {metadata?.type === 'folder' ? 'Folder Name' : 'Filename'}: {metadata?.name} Kind: {type} {metadata?.size && Size: {getHumanReadableFileSize(metadata.size)}} {metadata?.type === 'folder' && metadata.count && ( Folder content {metadata.count} items )} ) }