diff --git a/app/components/DropToImport.js b/app/components/DropToImport.js index 10b5a30f7..6dc8fd012 100644 --- a/app/components/DropToImport.js +++ b/app/components/DropToImport.js @@ -11,6 +11,7 @@ import DocumentsStore from 'stores/DocumentsStore'; import LoadingIndicator from 'components/LoadingIndicator'; const EMPTY_OBJECT = {}; +let importingLock = false; type Props = { children: React.Node, @@ -43,7 +44,10 @@ class DropToImport extends React.Component { @observable isImporting: boolean = false; onDropAccepted = async (files = []) => { + if (importingLock) return; + this.isImporting = true; + importingLock = true; try { let collectionId = this.props.collectionId; @@ -70,6 +74,7 @@ class DropToImport extends React.Component { } } finally { this.isImporting = false; + importingLock = false; } }; diff --git a/app/components/Sidebar/components/SidebarLink.js b/app/components/Sidebar/components/SidebarLink.js index 9ce6ed678..655f0a7cc 100644 --- a/app/components/Sidebar/components/SidebarLink.js +++ b/app/components/Sidebar/components/SidebarLink.js @@ -45,7 +45,6 @@ class SidebarLink extends React.Component { @action handleClick = (ev: SyntheticEvent<>) => { ev.preventDefault(); - ev.stopPropagation(); this.expanded = !this.expanded; }; diff --git a/app/menus/CollectionMenu.js b/app/menus/CollectionMenu.js index 8a827cdf7..bdda77cec 100644 --- a/app/menus/CollectionMenu.js +++ b/app/menus/CollectionMenu.js @@ -3,8 +3,8 @@ import * as React from 'react'; import { observable } from 'mobx'; import { inject, observer } from 'mobx-react'; import { withRouter, type RouterHistory } from 'react-router-dom'; -import styled from 'styled-components'; import Modal from 'components/Modal'; +import VisuallyHidden from 'components/VisuallyHidden'; import CollectionMembers from 'scenes/CollectionMembers'; import { newDocumentUrl } from 'utils/routeHelpers'; @@ -31,7 +31,6 @@ type Props = { class CollectionMenu extends React.Component { file: ?HTMLInputElement; @observable membersModalOpen: boolean = false; - @observable redirectTo: ?string; onNewDocument = (ev: SyntheticEvent<>) => { ev.preventDefault(); @@ -41,6 +40,7 @@ class CollectionMenu extends React.Component { onImportDocument = (ev: SyntheticEvent<>) => { ev.preventDefault(); + ev.stopPropagation(); // simulate a click on the file upload input element if (this.file) this.file.click(); @@ -94,12 +94,15 @@ class CollectionMenu extends React.Component { return ( - (this.file = ref)} - onChange={this.onFilePicked} - accept="text/markdown, text/plain" - /> + + (this.file = ref)} + onChange={this.onFilePicked} + accept="text/markdown, text/plain" + /> + + { } } -const HiddenInput = styled.input` - position: absolute; - top: -100px; - left: -100px; - visibility: hidden; -`; - export default inject('ui', 'documents', 'policies')( withRouter(CollectionMenu) );