Added collection menu link to import documents
This commit is contained in:
@ -8,11 +8,7 @@ import Document from 'models/Document';
|
|||||||
import DocumentsStore from 'stores/DocumentsStore';
|
import DocumentsStore from 'stores/DocumentsStore';
|
||||||
import LoadingIndicator from 'components/LoadingIndicator';
|
import LoadingIndicator from 'components/LoadingIndicator';
|
||||||
|
|
||||||
class DropToImport extends Component {
|
type Props = {
|
||||||
state: {
|
|
||||||
isImporting: boolean,
|
|
||||||
};
|
|
||||||
props: {
|
|
||||||
children?: React$Element<any>,
|
children?: React$Element<any>,
|
||||||
collectionId: string,
|
collectionId: string,
|
||||||
documentId?: string,
|
documentId?: string,
|
||||||
@ -20,8 +16,15 @@ class DropToImport extends Component {
|
|||||||
rejectClassName?: string,
|
rejectClassName?: string,
|
||||||
documents: DocumentsStore,
|
documents: DocumentsStore,
|
||||||
disabled: boolean,
|
disabled: boolean,
|
||||||
|
dropzoneRef: Function,
|
||||||
history: Object,
|
history: Object,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class DropToImport extends Component {
|
||||||
|
state: {
|
||||||
|
isImporting: boolean,
|
||||||
|
};
|
||||||
|
props: Props;
|
||||||
state = {
|
state = {
|
||||||
isImporting: false,
|
isImporting: false,
|
||||||
};
|
};
|
||||||
@ -98,6 +101,7 @@ class DropToImport extends Component {
|
|||||||
disableClick
|
disableClick
|
||||||
disablePreview
|
disablePreview
|
||||||
multiple
|
multiple
|
||||||
|
ref={this.props.dropzoneRef}
|
||||||
{...props}
|
{...props}
|
||||||
>
|
>
|
||||||
{this.state.isImporting && <LoadingIndicator />}
|
{this.state.isImporting && <LoadingIndicator />}
|
||||||
|
@ -53,8 +53,14 @@ type Props = {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@observer class CollectionLink extends React.Component {
|
@observer class CollectionLink extends React.Component {
|
||||||
|
dropzoneRef;
|
||||||
|
|
||||||
@observable menuOpen = false;
|
@observable menuOpen = false;
|
||||||
|
|
||||||
|
handleImport = () => {
|
||||||
|
this.dropzoneRef.open();
|
||||||
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { history, collection, activeDocument, ui } = this.props;
|
const { history, collection, activeDocument, ui } = this.props;
|
||||||
|
|
||||||
@ -65,6 +71,7 @@ type Props = {
|
|||||||
collectionId={collection.id}
|
collectionId={collection.id}
|
||||||
activeClassName="activeDropZone"
|
activeClassName="activeDropZone"
|
||||||
menuOpen={this.menuOpen}
|
menuOpen={this.menuOpen}
|
||||||
|
dropzoneRef={ref => (this.dropzoneRef = ref)}
|
||||||
>
|
>
|
||||||
<SidebarLink key={collection.id} to={collection.url}>
|
<SidebarLink key={collection.id} to={collection.url}>
|
||||||
<Flex justify="space-between">
|
<Flex justify="space-between">
|
||||||
@ -76,6 +83,7 @@ type Props = {
|
|||||||
collection={collection}
|
collection={collection}
|
||||||
onShow={() => (this.menuOpen = true)}
|
onShow={() => (this.menuOpen = true)}
|
||||||
onClose={() => (this.menuOpen = false)}
|
onClose={() => (this.menuOpen = false)}
|
||||||
|
onImport={this.handleImport}
|
||||||
open={this.menuOpen}
|
open={this.menuOpen}
|
||||||
/>
|
/>
|
||||||
</CollectionAction>
|
</CollectionAction>
|
||||||
|
@ -6,6 +6,7 @@ import styled from 'styled-components';
|
|||||||
import Collection from 'models/Collection';
|
import Collection from 'models/Collection';
|
||||||
import UiStore from 'stores/UiStore';
|
import UiStore from 'stores/UiStore';
|
||||||
import Icon from 'components/Icon';
|
import Icon from 'components/Icon';
|
||||||
|
import Flex from 'components/Flex';
|
||||||
import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu';
|
import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu';
|
||||||
|
|
||||||
@observer class CollectionMenu extends Component {
|
@observer class CollectionMenu extends Component {
|
||||||
@ -13,6 +14,7 @@ import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu';
|
|||||||
label?: React$Element<any>,
|
label?: React$Element<any>,
|
||||||
onShow?: () => void,
|
onShow?: () => void,
|
||||||
onClose?: () => void,
|
onClose?: () => void,
|
||||||
|
onImport?: () => void,
|
||||||
history: Object,
|
history: Object,
|
||||||
ui: UiStore,
|
ui: UiStore,
|
||||||
collection: Collection,
|
collection: Collection,
|
||||||
@ -34,7 +36,7 @@ import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu';
|
|||||||
};
|
};
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { collection, label, onShow, onClose } = this.props;
|
const { collection, label, onShow, onClose, onImport } = this.props;
|
||||||
const { allowDelete } = collection;
|
const { allowDelete } = collection;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -44,11 +46,16 @@ import { DropdownMenu, DropdownMenuItem } from 'components/DropdownMenu';
|
|||||||
onClose={onClose}
|
onClose={onClose}
|
||||||
>
|
>
|
||||||
{collection &&
|
{collection &&
|
||||||
|
<Flex column>
|
||||||
<DropdownMenuItem onClick={this.onNewDocument}>
|
<DropdownMenuItem onClick={this.onNewDocument}>
|
||||||
New document
|
New document
|
||||||
</DropdownMenuItem>}
|
</DropdownMenuItem>
|
||||||
{collection &&
|
<DropdownMenuItem onClick={onImport}>
|
||||||
<DropdownMenuItem onClick={this.onEdit}>Edit</DropdownMenuItem>}
|
Import document
|
||||||
|
</DropdownMenuItem>
|
||||||
|
<DropdownMenuItem onClick={this.onEdit}>Edit</DropdownMenuItem>
|
||||||
|
</Flex>}
|
||||||
|
}
|
||||||
{allowDelete &&
|
{allowDelete &&
|
||||||
<DropdownMenuItem onClick={this.onDelete}>Delete</DropdownMenuItem>}
|
<DropdownMenuItem onClick={this.onDelete}>Delete</DropdownMenuItem>}
|
||||||
</DropdownMenu>
|
</DropdownMenu>
|
||||||
|
Reference in New Issue
Block a user