import React from 'react'; import PropTypes from 'prop-types'; import { ActionRow, Icon, Card, Chip, Truncate, Image, } from '@edx/paragon'; import { MoreVert, } from '@edx/paragon/icons'; import FileMenu from '../FileMenu'; import { getSrc } from '../data/utils'; const ListCard = ({ className, original, handleBulkDownload, handleLockedAsset, handleOpenDeleteConfirmation, handleOpenAssetInfo, }) => { const lockAsset = () => { const { locked } = original; handleLockedAsset(original.id, !locked); }; const src = getSrc({ thumbnail: original.thumbnail, wrapperType: original.wrapperType, }); return (
{original.thumbnail ? ( ) : (
)}
{original.displayName}
{original.wrapperType}
handleOpenAssetInfo(original)} portableUrl={original.portableUrl} iconSrc={MoreVert} id={original.id} onDownload={() => handleBulkDownload( [{ original: { id: original.id, displayName: original.displayName } }], )} openDeleteConfirmation={() => handleOpenDeleteConfirmation([{ original }])} />
); }; ListCard.defaultProps = { className: null, }; ListCard.propTypes = { className: PropTypes.string, original: PropTypes.shape({ displayName: PropTypes.string.isRequired, wrapperType: PropTypes.string.isRequired, locked: PropTypes.bool.isRequired, externalUrl: PropTypes.string.isRequired, thumbnail: PropTypes.string, id: PropTypes.string.isRequired, portableUrl: PropTypes.string.isRequired, }).isRequired, handleBulkDownload: PropTypes.func.isRequired, handleLockedAsset: PropTypes.func.isRequired, handleOpenDeleteConfirmation: PropTypes.func.isRequired, handleOpenAssetInfo: PropTypes.func.isRequired, }; export default ListCard;