2020-04-13 12:59:58 +02:00
|
|
|
import React from 'react';
|
|
|
|
|
import PropTypes from 'prop-types';
|
|
|
|
|
import classnames from 'classnames';
|
|
|
|
|
|
|
|
|
|
import { Icon } from '@ohif/ui';
|
|
|
|
|
|
|
|
|
|
const Thumbnail = ({
|
2020-04-21 17:51:39 +02:00
|
|
|
className,
|
|
|
|
|
imageSrc,
|
|
|
|
|
imageAltText,
|
2020-04-21 20:12:46 +02:00
|
|
|
description,
|
2020-04-13 12:59:58 +02:00
|
|
|
seriesNumber,
|
2020-04-21 20:12:46 +02:00
|
|
|
numInstances,
|
2020-04-13 12:59:58 +02:00
|
|
|
isActive,
|
|
|
|
|
onClick,
|
|
|
|
|
}) => {
|
|
|
|
|
return (
|
|
|
|
|
<div
|
2020-04-21 17:51:39 +02:00
|
|
|
className={classnames(
|
|
|
|
|
className,
|
|
|
|
|
'flex flex-col flex-1 px-3 cursor-pointer outline-none'
|
|
|
|
|
)}
|
2020-04-13 12:59:58 +02:00
|
|
|
onClick={onClick}
|
|
|
|
|
onKeyDown={onClick}
|
|
|
|
|
role="button"
|
|
|
|
|
tabIndex="0"
|
|
|
|
|
>
|
2020-04-21 17:51:39 +02:00
|
|
|
<div
|
|
|
|
|
className={classnames(
|
|
|
|
|
'flex flex-1 items-center justify-center rounded-md bg-black text-base text-white mb-2 min-h-32',
|
|
|
|
|
isActive
|
|
|
|
|
? 'border-2 border-primary-light'
|
|
|
|
|
: 'border border-secondary-light hover:border-blue-300'
|
|
|
|
|
)}
|
|
|
|
|
>
|
|
|
|
|
{imageSrc ? (
|
|
|
|
|
<img src={imageSrc} alt={imageAltText} className="min-h-32" />
|
|
|
|
|
) : (
|
|
|
|
|
<div>{imageAltText}</div>
|
2020-04-13 12:59:58 +02:00
|
|
|
)}
|
|
|
|
|
</div>
|
2020-04-21 17:51:39 +02:00
|
|
|
<div className="flex flex-row flex-1 text-blue-300 text-base items-center">
|
|
|
|
|
<div className="mr-4">
|
|
|
|
|
<span className="text-primary-main font-bold">{'S: '}</span>
|
|
|
|
|
{seriesNumber}
|
2020-04-13 12:59:58 +02:00
|
|
|
</div>
|
2020-04-21 17:51:39 +02:00
|
|
|
<div className="flex flex-row items-center flex-1">
|
2020-04-21 20:12:46 +02:00
|
|
|
<Icon name="group-layers" className="w-3 mr-2" /> {numInstances}
|
2020-04-13 12:59:58 +02:00
|
|
|
</div>
|
|
|
|
|
</div>
|
2020-04-21 20:12:46 +02:00
|
|
|
<div className="text-white text-base">{description}</div>
|
2020-04-13 12:59:58 +02:00
|
|
|
</div>
|
|
|
|
|
);
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
Thumbnail.propTypes = {
|
2020-04-21 17:51:39 +02:00
|
|
|
className: PropTypes.string,
|
|
|
|
|
imageSrc: PropTypes.string,
|
|
|
|
|
imageAltText: PropTypes.string,
|
2020-04-21 20:12:46 +02:00
|
|
|
description: PropTypes.string.isRequired,
|
2020-04-13 12:59:58 +02:00
|
|
|
seriesNumber: PropTypes.number.isRequired,
|
2020-04-21 20:12:46 +02:00
|
|
|
numInstances: PropTypes.number.isRequired,
|
2020-04-13 12:59:58 +02:00
|
|
|
isActive: PropTypes.bool.isRequired,
|
|
|
|
|
onClick: PropTypes.func.isRequired,
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
export default Thumbnail;
|