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;