@atlaskit/editor-plugin-image-upload
Version:
Image upload plugin for @atlaskit/editor-core
32 lines • 1.07 kB
JavaScript
import { safeInsert } from '@atlaskit/editor-prosemirror/utils';
import { createExternalMediaNode } from '../ui/hooks/utils';
import { startUpload } from './actions';
import { stateKey } from './plugin-key';
export var insertExternalImage = function insertExternalImage(options) {
return function (state, dispatch) {
var pluginState = stateKey.getState(state);
if (!(pluginState !== null && pluginState !== void 0 && pluginState.enabled) || !options.src) {
return false;
}
var mediaNode = createExternalMediaNode(options.src, state.schema);
if (!mediaNode) {
return false;
}
if (dispatch) {
dispatch(safeInsert(mediaNode, state.selection.$to.pos)(state.tr).scrollIntoView());
}
return true;
};
};
export var startImageUpload = function startImageUpload(event) {
return function (state, dispatch) {
var pluginState = stateKey.getState(state);
if (pluginState && !pluginState.enabled) {
return false;
}
if (dispatch) {
dispatch(startUpload(event)(state.tr));
}
return true;
};
};