import * as React from "react"; import { useState } from "react"; import { DataCardProps } from "../types"; import { Icon } from "@material-ui/core"; import { BulkActionsMenu } from ".."; /** * The default card to use to display a record in the DisplayItems component */ const DataCard: React.FC = ({ icon, image, component, tags, label, canEditLabel, onDataChange, showActionControls, actions, onClick, onActionSelect, onDoubleClick }: DataCardProps) => { const [isEditing, setIsEditing] = useState(false); /** * Method to update the data for that record * @params */ const updateData = () => { setIsEditing(false); onDataChange(); }; /** * Method to handle keyboard input keys (eg [esc] and [enter]) * @params */ const handleKeyboardInput = ( event: React.KeyboardEvent ) => { const { keyCode } = event; if (keyCode === 27) setIsEditing(false); if (keyCode === 13) updateData(); }; return (
{icon && {icon}} {image && } {component &&
{component}
} {tags &&
{tags}
} {label && (
{!isEditing ? ( ) => canEditLabel && setIsEditing(true) } > {label} ) : ( )}
)} {showActionControls && actions && ( onActionSelect(action)} /> )}
); }; DataCard.defaultProps = { canEditLabel: true, showActionControls: true }; export default DataCard;