import React from "react"; import { Flex, Image as UIImage, IconButton, Box, Text, Badge } from "theme-ui"; import EditTileIcon from "../icons/EditTileIcon"; function Tile({ src, title, isSelected, onSelect, onEdit, onDoubleClick, size, canEdit, badges, editTitle, }) { let width; let margin; switch (size) { case "small": width = "24%"; margin = "0.5%"; break; case "medium": width = "32%"; margin = `${2 / 3}%`; break; case "large": width = "48%"; margin = "1%"; break; default: width = "32%"; margin = `${2 / 3}%`; } return ( { e.stopPropagation(); onSelect(); }} onDoubleClick={onDoubleClick} > {title} {badges.map((badge, i) => ( {badge} ))} {canEdit && ( { e.preventDefault(); e.stopPropagation(); onEdit(); }} bg="overlay" sx={{ borderRadius: "50%" }} m={2} > )} ); } Tile.defaultProps = { src: "", title: "", isSelected: false, onSelect: () => {}, onEdit: () => {}, onDoubleClick: () => {}, size: "medium", canEdit: false, badges: [], editTitle: "Edit", }; export default Tile;