Rev 3475 | Rev 3611 | Ir a la última revisión | Autoría | Comparar con el anterior | Ultima modificación | Ver Log |
import React, { useState } from 'react';import { useSelector } from 'react-redux';import { IconButton, Menu, MenuItem, styled, Typography } from '@mui/material';import { MoreVert } from '@mui/icons-material';import { parse } from '@app/utils';import { Card, CardContent, CardMedia } from '@shared/components';const OptionsButton = styled(IconButton)(({ theme }) => ({position: 'absolute',top: theme.spacing(1),right: theme.spacing(1),zIndex: 1}));export function KnowledgeCard({knowledge: { category, description, image, title },onClick,onEdit,onDelete}) {const labels = useSelector(({ intl }) => intl.labels);const [anchorEl, setAnchorEl] = useState();const open = Boolean(anchorEl);const handleClick = (event) => {event.stopPropagation();setAnchorEl(event.currentTarget);};const handleClose = (event) => {event.stopPropagation();setAnchorEl(null);};const handleMenuItemClick = (onClick, event) => {event.stopPropagation();handleClose();onClick();};return (<Card onClick={onClick} styles={{ cursor: 'pointer' }}><OptionsButton onClick={handleClick}><MoreVert /></OptionsButton><MenuanchorEl={anchorEl}open={open}onClose={handleClose}anchorOrigin={{vertical: 'bottom',horizontal: 'left'}}transformOrigin={{vertical: 'top',horizontal: 'right'}}><MenuItem onClick={(event) => handleMenuItemClick(onEdit, event)}>{labels.edit}</MenuItem><MenuItem onClick={(event) => handleMenuItemClick(onDelete, event)}>{labels.delete}</MenuItem></Menu><CardMedia height={200} src={image} alt={`${title} image`} /><CardContent><Typography variant='h2'>{title}</Typography><Typography variant='overline'>{category}</Typography><Typography>{parse(description)}</Typography></CardContent></Card>);}