/** * @flow * @file Preview Navigation * @author Box */ import * as React from 'react'; import { injectIntl } from 'react-intl'; import type { IntlShape } from 'react-intl'; import { Route } from 'react-router-dom'; import IconNavigateLeft from '../../icons/general/IconNavigateLeft'; import IconNavigateRight from '../../icons/general/IconNavigateRight'; import PlainButton from '../../components/plain-button/PlainButton'; import messages from '../common/messages'; import type { BoxItem } from '../../common/types/core'; type Props = { collection: Array, currentIndex: number, intl: IntlShape, onNavigateLeft: Function, onNavigateRight: Function, }; const PreviewNavigation = ({ collection = [], currentIndex, intl, onNavigateLeft, onNavigateRight }: Props) => { const hasLeftNavigation = collection.length > 1 && currentIndex > 0 && currentIndex < collection.length; const hasRightNavigation = collection.length > 1 && currentIndex > -1 && currentIndex < collection.length - 1; if (!hasLeftNavigation && !hasRightNavigation) { return null; } return ( {({ match, history }) => ( <> {hasLeftNavigation && ( { if (match.params.deeplink) { history.push(`/${match.params.activeTab}`); } onNavigateLeft(); }} title={intl.formatMessage(messages.previousFile)} type="button" > )} {hasRightNavigation && ( { if (match.params.deeplink) { history.push(`/${match.params.activeTab}`); } onNavigateRight(); }} title={intl.formatMessage(messages.nextFile)} type="button" > )} )} ); }; export { PreviewNavigation as PreviewNavigationComponent }; export default injectIntl(PreviewNavigation);