import { Asset } from '../types/Asset'; import { DraggableMediaItem } from './DraggableMediaItem'; import React, { MouseEvent } from 'react'; import styled from 'styled-components'; import { Flex, Card, Text, Tooltip, Box } from '@sanity/ui'; import { DocumentIcon } from '@sanity/icons'; interface Props { assets?: Array; onDoubleClick: (asset: Asset) => void; onDragStart: (asset: Asset) => void; onMediaItemClick: (e: MouseEvent, asset: Asset) => void; selectedAssets: Array; setIsDraggingMediaItem: (value: Boolean) => void; } const StyledMediaInfo = styled.div` padding: 30px 10px; text-align: center; width: 150px; height: 150px; max-width: 100%; max-height: 100%; border: 1px solid whitesmoke; border-radius: 5px; overflow: hidden; `; const StyledThumbnail = styled.img` display: block; border-radius: 5px; max-width: 150px; max-height: 150px; width: 150px; height: 150px; border: 1px solid whitesmoke; padding: 2px; `; const StyledFilename = styled.span` word-break: break-all; `; export const MediaGrid = ({ assets = [], onDoubleClick, onDragStart, onMediaItemClick, selectedAssets, setIsDraggingMediaItem, }: Props) => ( {assets.map((asset) => ( setIsDraggingMediaItem(false)} onDragStart={() => { onDragStart(asset); setIsDraggingMediaItem(true); }} selectedAmount={selectedAssets.length} url={asset.url} > _id === asset._id) > -1 ? '4px solid currentColor' : 0, }} onClick={(e) => onMediaItemClick(e, asset)} onDoubleClick={() => onDoubleClick(asset)} > {asset._type === 'sanity.imageAsset' ? ( {asset.title || asset.originalFilename} } fallbackPlacements={['top', 'bottom']} placement="top" > ) : ( {asset.title || asset.originalFilename} )} ))} );