import React, { Fragment, useMemo } from 'react'; import PropTypes from 'prop-types'; import { useTranslation } from 'next-i18next'; import { UncontrolledTooltip } from 'reactstrap'; import { useCurrentPageId } from '~/stores/context'; import AttachmentIcon from './Icons/AttachmentIcon'; import HistoryIcon from './Icons/HistoryIcon'; import PageListIcon from './Icons/PageListIcon'; import ShareLinkIcon from './Icons/ShareLinkIcon'; import TimeLineIcon from './Icons/TimeLineIcon'; import { withUnstatedContainers } from './UnstatedUtils'; const PageAccessoriesModalControl = (props) => { const { t } = useTranslation(); const { pageAccessoriesContainer, isGuestUser, isSharedUser, } = props; const isLinkSharingDisabled = pageAccessoriesContainer.appContainer.config.disableLinkSharing; const { data: pageId } = useCurrentPageId(); const accessoriesBtnList = useMemo(() => { return [ { name: 'pagelist', Icon: , disabled: isSharedUser, i18n: t('page_list'), }, { name: 'timeline', Icon: , disabled: isSharedUser, i18n: t('Timeline View'), }, { name: 'pageHistory', Icon: , disabled: isGuestUser || isSharedUser, i18n: t('History'), }, { name: 'attachment', Icon: , i18n: t('attachment_data'), }, { name: 'shareLink', Icon: , disabled: isGuestUser || isSharedUser || isLinkSharingDisabled, i18n: t('share_links.share_link_management'), }, ]; }, [t, isGuestUser, isSharedUser, isLinkSharingDisabled]); return (
{accessoriesBtnList.map((accessory) => { let tooltipMessage; if (accessory.disabled) { tooltipMessage = t('Not available for guest'); if (accessory.name === 'shareLink' && isLinkSharingDisabled) { tooltipMessage = t('Link sharing is disabled'); } } else { tooltipMessage = accessory.i18n; } return ( {tooltipMessage} ); })}
); }; PageAccessoriesModalControl.propTypes = { pageAccessoriesContainer: PropTypes.any, isGuestUser: PropTypes.bool.isRequired, isSharedUser: PropTypes.bool.isRequired, }; /** * Wrapper component for using unstated */ const PageAccessoriesModalControlWrapper = withUnstatedContainers(PageAccessoriesModalControl, []); export default PageAccessoriesModalControlWrapper;