draft-js-markdown-shortcuts-plugin
Version:
A DraftJS plugin for supporting Markdown syntax shortcuts
43 lines (31 loc) • 1.27 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _changeCurrentBlockType = _interopRequireDefault(require("./changeCurrentBlockType"));
var _insertEmptyBlock = _interopRequireDefault(require("./insertEmptyBlock"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var handleNewCodeBlock = function handleNewCodeBlock(editorState) {
var contentState = editorState.getCurrentContent();
var selection = editorState.getSelection();
var key = selection.getStartKey();
var currentBlock = contentState.getBlockForKey(key);
var matchData = /^```([\w-]+)?$/.exec(currentBlock.getText());
var isLast = selection.getEndOffset() === currentBlock.getLength();
if (matchData && isLast) {
var data = {};
var language = matchData[1];
if (language) {
data.language = language;
}
return (0, _changeCurrentBlockType.default)(editorState, 'code-block', '', data);
}
var type = currentBlock.getType();
if (type === 'code-block' && isLast) {
return (0, _insertEmptyBlock.default)(editorState, 'code-block', currentBlock.getData());
}
return editorState;
};
var _default = handleNewCodeBlock;
exports.default = _default;