diff --git a/frontend/components/DropToImport/DropToImport.js b/frontend/components/DropToImport/DropToImport.js index b5a84100..84b4cb16 100644 --- a/frontend/components/DropToImport/DropToImport.js +++ b/frontend/components/DropToImport/DropToImport.js @@ -19,6 +19,7 @@ class DropToImport extends Component { activeClassName?: string, rejectClassName?: string, documents: DocumentsStore, + disabled: boolean, history: Object, }; state = { @@ -83,9 +84,12 @@ class DropToImport extends Component { 'history', 'documentId', 'collectionId', - 'documents' + 'documents', + 'disabled' ); + if (this.props.disabled) return this.props.children; + return ( { DropOrPasteImages({ extensions: ['png', 'jpg', 'gif'], applyTransform: async (transform, file) => { + onImageUploadStart(); try { - onImageUploadStart(); const asset = await uploadFile(file); const alt = file.name; const src = asset.url; @@ -39,6 +39,7 @@ const createPlugins = ({ onImageUploadStart, onImageUploadStop }: Options) => { }); } catch (err) { // TODO: Show a failure alert + console.error(err); } finally { onImageUploadStop(); } diff --git a/frontend/scenes/Document/Document.js b/frontend/scenes/Document/Document.js index 7f6d9510..9b11fc14 100644 --- a/frontend/scenes/Document/Document.js +++ b/frontend/scenes/Document/Document.js @@ -124,13 +124,13 @@ type Props = { ); } - onImageUploadStart() { + onImageUploadStart = () => { this.setState({ isLoading: true }); - } + }; - onImageUploadStop() { + onImageUploadStop = () => { this.setState({ isLoading: false }); - } + }; onChange = text => { if (!this.document) return; @@ -166,7 +166,7 @@ type Props = { render() { const isNew = this.props.newDocument; - const isEditing = this.props.match.params.edit || isNew; + const isEditing = !!this.props.match.params.edit || isNew; const isFetching = !this.document; const titleText = get(this.document, 'title', 'Loading'); @@ -190,6 +190,7 @@ type Props = { onDragEnter={this.onStartDragging} onDragLeave={this.onStopDragging} onDrop={this.onStopDragging} + disabled={isEditing} >