// @flow import * as React from 'react'; import { FormattedMessage, FormattedNumber } from 'react-intl'; import PlainButton from '../../components/plain-button/PlainButton'; import IconEye from '../../icons/general/IconEye'; import IconComment from '../../icons/general/IconComment'; import IconDownloadSolid from '../../icons/general/IconDownloadSolid'; import IconPencilSolid from '../../icons/general/IconPencilSolid'; import messages from './messages'; import './AccessStatsItem.scss'; const statsAttributesTable = { preview: { icon: IconEye, message: messages.accessStatsPreviews, }, view: { icon: IconEye, message: messages.accessStatsViews, }, download: { icon: IconDownloadSolid, message: messages.accessStatsDownloads, }, comment: { icon: IconComment, message: messages.accessStatsComments, }, edit: { icon: IconPencilSolid, message: messages.accessStatsEdits, }, }; const ICON_COLOR = '#2a62b9'; const ITEM_CONTENT_CLASS_NAME = 'access-stats-item-content'; type AccessStatsItemType = { count: number, hasCountOverflowed?: boolean, openAccessStatsModal?: Function, statButtonProps: Object, type: $Keys, }; const AccessStatsItem = ({ type, count = 0, hasCountOverflowed = false, openAccessStatsModal, statButtonProps, }: AccessStatsItemType) => { const statAttributes = statsAttributesTable[type]; const IconComponent = statAttributes.icon; const labelMessage = statAttributes.message; const itemContent = ( <> {hasCountOverflowed && '+'} ); return (
  • {openAccessStatsModal ? ( {itemContent} ) : ( {itemContent} )}
  • ); }; export default AccessStatsItem;