From cda9d53c8e24b0dcb2363c883ab92cfff698017a Mon Sep 17 00:00:00 2001 From: asmsuechan Date: Thu, 19 Jan 2017 01:05:30 +0900 Subject: [PATCH] Add image dropper --- browser/components/CodeEditor.js | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/browser/components/CodeEditor.js b/browser/components/CodeEditor.js index a761bae7..81a2ff18 100644 --- a/browser/components/CodeEditor.js +++ b/browser/components/CodeEditor.js @@ -163,6 +163,18 @@ export default class CodeEditor extends React.Component { this.editor.setCursor(cursor) } + handleDrop (e) { + e.preventDefault() + let path = e.dataTransfer.files[0].path + let filename = path.match(".+/(.+?)\.[a-z]+([\?#;].*)?$")[1] + let imageMd = "![" + filename + "](" + path + ")" + this.insertImage(this.editor.getInputField(), imageMd) + } + + insertImage (textarea, imageMd) { + textarea.value = textarea.value.substr(0, textarea.selectionStart) + imageMd + textarea.value.substr(textarea.selectionEnd) + } + render () { let { className, fontFamily, fontSize } = this.props fontFamily = _.isString(fontFamily) && fontFamily.length > 0 @@ -180,6 +192,7 @@ export default class CodeEditor extends React.Component { fontFamily: fontFamily.join(', '), fontSize: fontSize }} + onDrop={(e) => this.handleDrop(e)} /> ) }