draft-js-markdown-shortcuts-plugin
Version:
A DraftJS plugin for supporting Markdown syntax shortcuts
42 lines (33 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _changeCurrentInlineStyle = _interopRequireDefault(require("./changeCurrentInlineStyle"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var inlineMatchers = {
BOLD: /(?:^|\s|\n|[^A-z0-9_*~`])(\*{2}|_{2})((?!\1).*?)(\1)($|\s|\n|[^A-z0-9_*~`])/g,
ITALIC: /(?:^|\s|\n|[^A-z0-9_*~`])(\*{1}|_{1})((?!\1).*?)(\1)($|\s|\n|[^A-z0-9_*~`])/g,
CODE: /(?:^|\s|\n|[^A-z0-9_*~`])(`)((?!\1).*?)(\1)($|\s|\n|[^A-z0-9_*~`])/g,
STRIKETHROUGH: /(?:^|\s|\n|[^A-z0-9_*~`])(~{2})((?!\1).*?)(\1)($|\s|\n|[^A-z0-9_*~`])/g
};
var handleInlineStyle = function handleInlineStyle(editorState, character) {
var key = editorState.getSelection().getStartKey();
var text = editorState.getCurrentContent().getBlockForKey(key).getText();
var line = "".concat(text).concat(character);
var newEditorState = editorState;
Object.keys(inlineMatchers).some(function (k) {
var re = inlineMatchers[k];
var matchArr;
do {
matchArr = re.exec(line);
if (matchArr) {
newEditorState = (0, _changeCurrentInlineStyle.default)(newEditorState, matchArr, k);
}
} while (matchArr);
return newEditorState !== editorState;
});
return newEditorState;
};
var _default = handleInlineStyle;
exports.default = _default;