import React from 'react'; import PropTypes from 'prop-types'; import { Modal, ModalBody, Nav, NavItem, NavLink, TabContent, TabPane, } from 'reactstrap'; import { withTranslation } from 'react-i18next'; import PageListIcon from './Icons/PageListIcon'; import TimeLineIcon from './Icons/TimeLineIcon'; import RecentChangesIcon from './Icons/RecentChangesIcon'; import AttachmentIcon from './Icons/AttachmentIcon'; import ShareLinkIcon from './Icons/ShareLinkIcon'; import { withUnstatedContainers } from './UnstatedUtils'; import PageAccessoriesContainer from '../services/PageAccessoriesContainer'; import PageAttachment from './PageAttachment'; import PageTimeline from './PageTimeline'; import PageList from './PageList'; import PageHistory from './PageHistory'; import ShareLink from './ShareLink/ShareLink'; const PageAccessoriesModal = (props) => { const { t, pageAccessoriesContainer } = props; const { switchActiveTab } = pageAccessoriesContainer; const { activeTab } = pageAccessoriesContainer.state; function closeModalHandler() { if (props.onClose == null) { return; } props.onClose(); } return ( {pageAccessoriesContainer.state.activeComponents.has('pagelist') && } {pageAccessoriesContainer.state.activeComponents.has('timeline') && }
{pageAccessoriesContainer.state.activeComponents.has('page-history') && }
{pageAccessoriesContainer.state.activeComponents.has('attachment') && } {pageAccessoriesContainer.state.activeComponents.has('share-link') && }
); }; /** * Wrapper component for using unstated */ const PageAccessoriesModalWrapper = withUnstatedContainers(PageAccessoriesModal, [PageAccessoriesContainer]); PageAccessoriesModal.propTypes = { t: PropTypes.func.isRequired, // i18next // pageContainer: PropTypes.instanceOf(PageContainer).isRequired, pageAccessoriesContainer: PropTypes.instanceOf(PageAccessoriesContainer).isRequired, isOpen: PropTypes.bool.isRequired, onClose: PropTypes.func, }; export default withTranslation()(PageAccessoriesModalWrapper);