2017-09-10 05:12:59 +00:00
|
|
|
// @flow
|
2018-05-05 23:16:08 +00:00
|
|
|
import * as React from 'react';
|
2017-09-10 05:12:59 +00:00
|
|
|
import { observer } from 'mobx-react';
|
2017-09-11 05:27:23 +00:00
|
|
|
import BaseModal from 'components/Modal';
|
2017-09-10 05:12:59 +00:00
|
|
|
import UiStore from 'stores/UiStore';
|
|
|
|
import CollectionNew from 'scenes/CollectionNew';
|
|
|
|
import CollectionEdit from 'scenes/CollectionEdit';
|
2017-09-10 05:51:22 +00:00
|
|
|
import CollectionDelete from 'scenes/CollectionDelete';
|
2018-06-21 04:33:21 +00:00
|
|
|
import CollectionExport from 'scenes/CollectionExport';
|
2017-09-10 05:51:22 +00:00
|
|
|
import DocumentDelete from 'scenes/DocumentDelete';
|
2018-05-17 06:07:33 +00:00
|
|
|
import DocumentShare from 'scenes/DocumentShare';
|
2017-09-10 05:12:59 +00:00
|
|
|
import KeyboardShortcuts from 'scenes/KeyboardShortcuts';
|
|
|
|
|
2018-05-05 23:16:08 +00:00
|
|
|
type Props = {
|
|
|
|
ui: UiStore,
|
|
|
|
};
|
2017-11-10 22:14:30 +00:00
|
|
|
@observer
|
2018-05-05 23:16:08 +00:00
|
|
|
class Modals extends React.Component<Props> {
|
2017-09-10 05:12:59 +00:00
|
|
|
handleClose = () => {
|
|
|
|
this.props.ui.clearActiveModal();
|
|
|
|
};
|
|
|
|
|
|
|
|
render() {
|
|
|
|
const { activeModalName, activeModalProps } = this.props.ui;
|
|
|
|
|
2017-09-11 05:27:23 +00:00
|
|
|
const Modal = ({ name, children, ...rest }) => {
|
|
|
|
return (
|
|
|
|
<BaseModal
|
|
|
|
isOpen={activeModalName === name}
|
2017-09-10 05:12:59 +00:00
|
|
|
onRequestClose={this.handleClose}
|
2017-09-11 05:27:23 +00:00
|
|
|
{...rest}
|
2017-09-10 05:12:59 +00:00
|
|
|
>
|
2017-09-11 05:27:23 +00:00
|
|
|
{React.cloneElement(children, activeModalProps)}
|
|
|
|
</BaseModal>
|
|
|
|
);
|
|
|
|
};
|
|
|
|
|
|
|
|
return (
|
|
|
|
<span>
|
|
|
|
<Modal name="collection-new" title="Create a collection">
|
|
|
|
<CollectionNew onSubmit={this.handleClose} />
|
2017-09-10 05:12:59 +00:00
|
|
|
</Modal>
|
2017-09-11 05:27:23 +00:00
|
|
|
<Modal name="collection-edit" title="Edit collection">
|
|
|
|
<CollectionEdit onSubmit={this.handleClose} />
|
2017-09-10 05:12:59 +00:00
|
|
|
</Modal>
|
2017-09-11 05:27:23 +00:00
|
|
|
<Modal name="collection-delete" title="Delete collection">
|
|
|
|
<CollectionDelete onSubmit={this.handleClose} />
|
2017-09-10 05:51:22 +00:00
|
|
|
</Modal>
|
2018-06-21 04:33:21 +00:00
|
|
|
<Modal name="collection-export" title="Export collection">
|
|
|
|
<CollectionExport onSubmit={this.handleClose} />
|
|
|
|
</Modal>
|
2018-05-17 06:07:33 +00:00
|
|
|
<Modal name="document-share" title="Share document">
|
2018-05-26 17:38:44 +00:00
|
|
|
<DocumentShare onSubmit={this.handleClose} />
|
2018-05-17 06:07:33 +00:00
|
|
|
</Modal>
|
2017-09-11 05:27:23 +00:00
|
|
|
<Modal name="document-delete" title="Delete document">
|
|
|
|
<DocumentDelete onSubmit={this.handleClose} />
|
2017-09-10 05:51:22 +00:00
|
|
|
</Modal>
|
2017-09-11 05:27:23 +00:00
|
|
|
<Modal name="keyboard-shortcuts" title="Keyboard shortcuts">
|
2017-09-10 05:12:59 +00:00
|
|
|
<KeyboardShortcuts />
|
|
|
|
</Modal>
|
|
|
|
</span>
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
export default Modals;
|