Mailspring/internal_packages/composer/lib/image-upload-composer-extension.es6
Ben Gotow 039d9bea61 feat(inline-images): Drag & drop or paste inline images
Summary: Initial support for inline images. Tests still forthcoming!

Test Plan: WIP

Reviewers: mark, juan

Reviewed By: juan

Differential Revision: https://phab.nylas.com/D3295
2016-09-26 17:01:19 -07:00

35 lines
966 B
JavaScript

import {
Actions,
ComposerExtension,
} from 'nylas-exports'
export default class ImageUploadComposerExtension extends ComposerExtension {
static editingActions() {
return [{
action: Actions.insertAttachmentIntoDraft,
callback: ImageUploadComposerExtension._onInsertAttachmentIntoDraft,
}, {
action: Actions.removeAttachment,
callback: ImageUploadComposerExtension._onRemovedAttachment,
}]
}
static _onRemovedAttachment({editor, actionArg}) {
const upload = actionArg;
const el = editor.rootNode.querySelector(`.inline-container-${upload.id}`)
if (el) {
el.parentNode.removeChild(el);
}
}
static _onInsertAttachmentIntoDraft({editor, actionArg}) {
if (editor.draftClientId === actionArg.draftClientId) { return }
editor.insertCustomComponent("InlineImageUploadContainer", {
className: `inline-container-${actionArg.uploadId}`,
uploadId: actionArg.uploadId,
})
}
}