UNPKG

@atlaskit/editor-core

Version:

A package contains Atlassian editor core functionality

42 lines 2.5 kB
import * as React from 'react'; import { WithProviders } from '../../../providerFactory/withProviders'; import { createPlugin } from '../../../plugins/emojis'; import inputRulePlugin from '../../../plugins/emojis/input-rules'; import keymap from '../../../plugins/emojis/keymap'; import { inputRulePlugin as asciiInputRulePlugin } from '../../../plugins/emojis/ascii-input-rules'; import { emoji } from '../../../schema/nodes/emoji'; import { emojiQuery } from '../../../schema/marks/emoji-query'; import pluginKey from '../../../plugins/emojis/plugin-key'; import ToolbarEmojiPicker from '../../../ui/ToolbarEmojiPicker'; import EmojiTypeAhead from '../../../ui/EmojiTypeAhead'; var emojiPlugin = { nodes: function () { return [{ name: 'emoji', node: emoji, rank: 1600 }]; }, marks: function () { return [{ name: 'emojiQuery', mark: emojiQuery, rank: 1600 }]; }, pmPlugins: function () { return [ { rank: 400, plugin: function (schema, props, dispatch, providerFactory) { return createPlugin(providerFactory); } }, { rank: 410, plugin: function (schema) { return inputRulePlugin(schema); } }, { rank: 420, plugin: function (schema) { return keymap(schema); } }, { rank: 430, plugin: function (schema, props, dispatch, providerFactory) { return asciiInputRulePlugin(schema, providerFactory); } } ]; }, contentComponent: function (editorView, eventDispatcher, providerFactory) { var renderNode = function (providers) { return React.createElement(EmojiTypeAhead, { editorView: editorView, pluginKey: pluginKey, emojiProvider: providers.emojiProvider }); }; return (React.createElement(WithProviders, { providerFactory: providerFactory, providers: ['emojiProvider'], renderNode: renderNode })); }, secondaryToolbarComponent: function (editorView, eventDispatcher, providerFactory) { var renderNode = function (providers) { // numFollowingButtons must be changed if buttons are added after ToolbarEmojiPicker to the message editor return React.createElement(ToolbarEmojiPicker, { editorView: editorView, pluginKey: pluginKey, emojiProvider: providers.emojiProvider, numFollowingButtons: 2 }); }; return (React.createElement(WithProviders, { providerFactory: providerFactory, providers: ['emojiProvider'], renderNode: renderNode })); }, }; export default emojiPlugin; //# sourceMappingURL=index.js.map