|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
import PropTypes from 'prop-types';
|
|
import PropTypes from 'prop-types';
|
|
|
|
|
|
|
|
import {
|
|
import {
|
|
|
- Modal, ModalBody, Nav, NavItem, NavLink, TabContent,
|
|
|
|
|
|
|
+ Modal, ModalBody, Nav, NavItem, NavLink, TabContent, TabPane,
|
|
|
} from 'reactstrap';
|
|
} from 'reactstrap';
|
|
|
|
|
|
|
|
import { withTranslation } from 'react-i18next';
|
|
import { withTranslation } from 'react-i18next';
|
|
@@ -13,10 +13,13 @@ import RecentChangesIcon from './Icons/RecentChangesIcon';
|
|
|
import AttachmentIcon from './Icons/AttachmentIcon';
|
|
import AttachmentIcon from './Icons/AttachmentIcon';
|
|
|
|
|
|
|
|
import { withUnstatedContainers } from './UnstatedUtils';
|
|
import { withUnstatedContainers } from './UnstatedUtils';
|
|
|
-import PageContainer from '../services/PageContainer';
|
|
|
|
|
|
|
+import PageAccessoriesContainer from '../services/PageAccessoriesContainer';
|
|
|
|
|
+import PageAttachment from './PageAttachment';
|
|
|
|
|
|
|
|
const PageAccessoriesModal = (props) => {
|
|
const PageAccessoriesModal = (props) => {
|
|
|
- const { t } = props;
|
|
|
|
|
|
|
+ const { t, pageAccessoriesContainer } = props;
|
|
|
|
|
+ const { switchActiveTab } = pageAccessoriesContainer;
|
|
|
|
|
+ const { activeTab } = pageAccessoriesContainer.state;
|
|
|
|
|
|
|
|
function closeModalHandler() {
|
|
function closeModalHandler() {
|
|
|
if (props.onClose == null) {
|
|
if (props.onClose == null) {
|
|
@@ -25,13 +28,6 @@ const PageAccessoriesModal = (props) => {
|
|
|
props.onClose();
|
|
props.onClose();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- function switchTabHandler(clickedTab) {
|
|
|
|
|
- if (props.onSwitch == null) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
- props.onSwitch(clickedTab);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
return (
|
|
return (
|
|
|
<React.Fragment>
|
|
<React.Fragment>
|
|
|
<Modal
|
|
<Modal
|
|
@@ -42,40 +38,46 @@ const PageAccessoriesModal = (props) => {
|
|
|
>
|
|
>
|
|
|
<ModalBody>
|
|
<ModalBody>
|
|
|
<Nav className="nav-title border-bottom">
|
|
<Nav className="nav-title border-bottom">
|
|
|
- <NavItem className={`nav-link ${props.activeTab === 'pageList' && 'active'}`}>
|
|
|
|
|
|
|
+ <NavItem type="button" className={`nav-link ${activeTab === 'pagelist' && 'active active-border'}`}>
|
|
|
<NavLink
|
|
<NavLink
|
|
|
- onClick={() => { switchTabHandler('pageList') }}
|
|
|
|
|
|
|
+ onClick={() => { switchActiveTab('pagelist') }}
|
|
|
>
|
|
>
|
|
|
<PageListIcon />
|
|
<PageListIcon />
|
|
|
{ t('page_list') }
|
|
{ t('page_list') }
|
|
|
</NavLink>
|
|
</NavLink>
|
|
|
</NavItem>
|
|
</NavItem>
|
|
|
- <NavItem className={`nav-link ${props.activeTab === 'timeLine' && 'active'}`}>
|
|
|
|
|
|
|
+ <NavItem type="button" className={`nav-link ${activeTab === 'timeline' && 'active active-border'}`}>
|
|
|
<NavLink
|
|
<NavLink
|
|
|
- onClick={() => { switchTabHandler('timeLine') }}
|
|
|
|
|
|
|
+ onClick={() => { switchActiveTab('timeline') }}
|
|
|
>
|
|
>
|
|
|
<TimeLineIcon />
|
|
<TimeLineIcon />
|
|
|
{ t('Timeline View') }
|
|
{ t('Timeline View') }
|
|
|
</NavLink>
|
|
</NavLink>
|
|
|
</NavItem>
|
|
</NavItem>
|
|
|
- <NavItem className={`nav-link ${props.activeTab === 'recentChanges' && 'active'}`}>
|
|
|
|
|
|
|
+ <NavItem type="button" className={`nav-link ${activeTab === 'recent-changes' && 'active active-border'}`}>
|
|
|
<NavLink
|
|
<NavLink
|
|
|
- onClick={() => { switchTabHandler('recentChanges') }}
|
|
|
|
|
|
|
+ onClick={() => { switchActiveTab('recent-changes') }}
|
|
|
>
|
|
>
|
|
|
<RecentChangesIcon />
|
|
<RecentChangesIcon />
|
|
|
{ t('History') }
|
|
{ t('History') }
|
|
|
</NavLink>
|
|
</NavLink>
|
|
|
</NavItem>
|
|
</NavItem>
|
|
|
- <NavItem className={`nav-link ${props.activeTab === 'attachment' && 'active'}`}>
|
|
|
|
|
|
|
+ <NavItem type="button" className={`nav-link ${activeTab === 'attachment' && 'active active-border'}`}>
|
|
|
<NavLink
|
|
<NavLink
|
|
|
- onClick={() => { switchTabHandler('attachment') }}
|
|
|
|
|
|
|
+ onClick={() => { switchActiveTab('attachment') }}
|
|
|
>
|
|
>
|
|
|
<AttachmentIcon />
|
|
<AttachmentIcon />
|
|
|
{ t('attachment_data') }
|
|
{ t('attachment_data') }
|
|
|
</NavLink>
|
|
</NavLink>
|
|
|
</NavItem>
|
|
</NavItem>
|
|
|
</Nav>
|
|
</Nav>
|
|
|
- <TabContent>
|
|
|
|
|
|
|
+ <TabContent activeTab={activeTab}>
|
|
|
|
|
+ <TabPane tabId="pagelist"></TabPane>
|
|
|
|
|
+ <TabPane tabId="timeline"></TabPane>
|
|
|
|
|
+ <TabPane tabId="recent-changes"></TabPane>
|
|
|
|
|
+ <TabPane tabId="attachment" className="p-4">
|
|
|
|
|
+ {pageAccessoriesContainer.state.activeComponents.has('attachment') && <PageAttachment /> }
|
|
|
|
|
+ </TabPane>
|
|
|
</TabContent>
|
|
</TabContent>
|
|
|
</ModalBody>
|
|
</ModalBody>
|
|
|
</Modal>
|
|
</Modal>
|
|
@@ -87,17 +89,16 @@ const PageAccessoriesModal = (props) => {
|
|
|
/**
|
|
/**
|
|
|
* Wrapper component for using unstated
|
|
* Wrapper component for using unstated
|
|
|
*/
|
|
*/
|
|
|
-const PageAccessoriesModalWrapper = withUnstatedContainers(PageAccessoriesModal, [PageContainer]);
|
|
|
|
|
|
|
+const PageAccessoriesModalWrapper = withUnstatedContainers(PageAccessoriesModal, [PageAccessoriesContainer]);
|
|
|
|
|
|
|
|
|
|
|
|
|
PageAccessoriesModal.propTypes = {
|
|
PageAccessoriesModal.propTypes = {
|
|
|
t: PropTypes.func.isRequired, // i18next
|
|
t: PropTypes.func.isRequired, // i18next
|
|
|
- pageContainer: PropTypes.instanceOf(PageContainer).isRequired,
|
|
|
|
|
|
|
+ // pageContainer: PropTypes.instanceOf(PageContainer).isRequired,
|
|
|
|
|
+ pageAccessoriesContainer: PropTypes.instanceOf(PageAccessoriesContainer).isRequired,
|
|
|
|
|
|
|
|
isOpen: PropTypes.bool.isRequired,
|
|
isOpen: PropTypes.bool.isRequired,
|
|
|
onClose: PropTypes.func,
|
|
onClose: PropTypes.func,
|
|
|
- activeTab: PropTypes.string.isRequired,
|
|
|
|
|
- onSwitch: PropTypes.func,
|
|
|
|
|
};
|
|
};
|
|
|
|
|
|
|
|
export default withTranslation()(PageAccessoriesModalWrapper);
|
|
export default withTranslation()(PageAccessoriesModalWrapper);
|