/**
* @flow
* @file Versions sidebar component
* @author Box
*/
import * as React from 'react';
import isFinite from 'lodash/isFinite';
import { injectIntl, FormattedMessage } from 'react-intl';
import type { MessageDescriptor, IntlShape } from 'react-intl';
import AccessStats from '../../features/access-stats/AccessStats';
import messages from '../common/messages';
import { INTERACTION_TARGET, SECTION_TARGETS, DETAILS_TARGETS } from '../common/interactionTargets';
import { isBoxNote } from '../../utils/file';
import SidebarSection from './SidebarSection';
import withErrorHandling from './withErrorHandling';
import type { FileAccessStats } from './flowTypes';
import type { BoxItem } from '../../common/types/core';
type Props = {
accessStats?: FileAccessStats,
error?: MessageDescriptor,
file: BoxItem,
intl: IntlShape,
onAccessStatsClick?: Function,
};
const SidebarAccessStats = ({
onAccessStatsClick,
accessStats = {
comment_count: undefined,
download_count: undefined,
edit_count: undefined,
has_count_overflowed: false,
preview_count: undefined,
},
file,
error,
intl,
}: Props) => {
const { preview_count, comment_count, download_count, edit_count } = accessStats;
if (
!isFinite(preview_count) &&
!isFinite(comment_count) &&
!isFinite(download_count) &&
!isFinite(edit_count) &&
!error
) {
return null;
}
const errorMessage = error ? intl.formatMessage(error) : undefined;
return (
}
>
);
};
export { SidebarAccessStats as SidebarAccessStatsComponent };
export default withErrorHandling(injectIntl(SidebarAccessStats));