import { Card as MuiCard, CardActionArea as MuiCardActionArea, CardActions as MuiCardActions, CardContent as MuiCardContent, Typography as MuiTypography } from '@mui/material'; import React, { forwardRef, type ReactElement, type RefObject, useMemo } from 'react'; import { useStyles } from './DataTableItem.styles'; export interface DataTableItemProps { Actions?: JSX.Element; description?: string; hasActions?: boolean; hasCardAction?: boolean; onClick?: () => void; thumbnail?: string | null; title: string; } const DataTableItem = forwardRef( ( { title, description, hasCardAction = false, hasActions = false, onClick, Actions, thumbnail }: DataTableItemProps, ref ): ReactElement => { const { classes } = useStyles(); const ActionArea = useMemo( () => (hasCardAction ? MuiCardActionArea : React.Fragment), [hasCardAction] ); return ( } variant="outlined" > onClick?.()}> {thumbnail && ( {`thumbnail-${title}-${description}`} )} {title} {description && ( {description} )} {hasActions && ( {Actions} )} ); } ); export { DataTableItem };