@atlaskit/editor-plugin-image-upload
Version:
Image upload plugin for @atlaskit/editor-core
26 lines (25 loc) • 933 B
JavaScript
import { SafePlugin } from '@atlaskit/editor-common/safe-plugin';
import { createRule } from '@atlaskit/editor-common/utils';
import { createPlugin } from '@atlaskit/prosemirror-input-rules';
import { createExternalMediaNode } from '../ui/hooks/utils';
export function inputRulePlugin(schema, featureFlags) {
if (!schema.nodes.media || !schema.nodes.mediaSingle) {
return;
}
//  should convert to an image
// eslint-disable-next-line require-unicode-regexp
var imageRule = createRule(/!\[(.*)\]\((\S+)\)$/, function (state, match, start, end) {
var schema = state.schema;
var attrs = {
src: match[2],
alt: match[1]
};
var node = createExternalMediaNode(attrs.src, schema);
if (node) {
return state.tr.replaceWith(start, end, node);
}
return null;
});
return new SafePlugin(createPlugin('image-upload', [imageRule]));
}
export default inputRulePlugin;