@atlaskit/editor-core
Version:
A package contains Atlassian editor core functionality
28 lines • 1.09 kB
JavaScript
import { inputRules } from '../../prosemirror';
import { stateKey } from './';
import { createInputRule, leafNodeReplacementCharacter } from '../utils';
export function inputRulePlugin(schema) {
var rules = [];
if (schema.nodes.emoji && schema.marks.emojiQuery) {
var regex = new RegExp("(^|[\\s(" + leafNodeReplacementCharacter + "]):$");
var emojiQueryRule = createInputRule(regex, function (state, match, start, end) {
var emojisState = stateKey.getState(state);
if (!emojisState.emojiProvider) {
return undefined;
}
if (!emojisState.isEnabled()) {
return undefined;
}
var mark = schema.mark('emojiQuery');
var tr = state.tr;
var emojiText = schema.text(':', [mark]);
return tr.replaceSelectionWith(emojiText, false);
});
rules.push(emojiQueryRule);
}
if (rules.length !== 0) {
return inputRules({ rules: rules });
}
}
export default inputRulePlugin;
//# sourceMappingURL=input-rules.js.map