diff --git a/browser/components/CodeEditor.js b/browser/components/CodeEditor.js index e430d097..4b439b91 100644 --- a/browser/components/CodeEditor.js +++ b/browser/components/CodeEditor.js @@ -169,17 +169,16 @@ export default class CodeEditor extends React.Component { e.preventDefault() let imagePath = e.dataTransfer.files[0].path let filename = path.basename(imagePath) - const cachedStorageList = JSON.parse(localStorage.getItem('storages')) - const storagePath = _.find(cachedStorageList, {key: this.props.storageKey}) - copyImage(imagePath, this.props.storageKey) - const imageMd = `![${encodeURI(filename)}](${storagePath.path}/images/${encodeURI(filename)})` - this.insertImage(imageMd) + copyImage(imagePath, this.props.storageKey).then((imagePathInTheStorage) => { + let imageMd = `![${encodeURI(filename)}](${imagePathInTheStorage})` + this.insertImageMd(imageMd) + }) } - insertImage (imageMd) { - const textarea = this.editor.getInputField() - textarea.value = textarea.value.substr(0, textarea.selectionStart) + imageMd + textarea.value.substr(textarea.selectionEnd) + insertImageMd (imageMd) { + const cm = this.editor + cm.setValue(cm.getValue() + imageMd) } render () { diff --git a/browser/main/lib/dataApi/copyImage.js b/browser/main/lib/dataApi/copyImage.js index 2a3bc65c..072b91eb 100644 --- a/browser/main/lib/dataApi/copyImage.js +++ b/browser/main/lib/dataApi/copyImage.js @@ -15,13 +15,19 @@ function copyImage (filePath, storageKey) { return Promise.reject(e) } - //return resolveStorageData(targetStorage) - - const inputImage = fs.createReadStream(filePath) - const imageName = path.basename(filePath) - sander.mkdirSync(`${targetStorage.path}/images`) - const outputImage = fs.createWriteStream(path.join(targetStorage.path, 'images', imageName)) - inputImage.pipe(outputImage) + return new Promise((resolve, reject) => { + try { + const inputImage = fs.createReadStream(filePath) + const imageName = path.basename(filePath) + sander.mkdirSync(`${targetStorage.path}/images`) + const outputImage = fs.createWriteStream(path.join(targetStorage.path, 'images', imageName)) + inputImage.pipe(outputImage) + resolve(`${encodeURI(targetStorage.path)}/images/${encodeURI(imageName)}`) + } + catch(e) { + return reject(e) + } + }) } module.exports = copyImage