From 75023d9f748661a94ac7d555329d24cb92f8b494 Mon Sep 17 00:00:00 2001 From: Shawn Erquhart Date: Fri, 1 Sep 2017 14:11:39 -0400 Subject: [PATCH] close rte heading block on enter keydown --- .../MarkdownControl/VisualEditor/plugins.js | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/components/Widgets/Markdown/MarkdownControl/VisualEditor/plugins.js b/src/components/Widgets/Markdown/MarkdownControl/VisualEditor/plugins.js index 569c06ca..efb7e029 100644 --- a/src/components/Widgets/Markdown/MarkdownControl/VisualEditor/plugins.js +++ b/src/components/Widgets/Markdown/MarkdownControl/VisualEditor/plugins.js @@ -34,6 +34,21 @@ export const SoftBreakConfigured = SoftBreak(SoftBreakOpts); export const ParagraphSoftBreakConfigured = SlateSoftBreak({ onlyIn: ['paragraph'], shift: true }); +const BreakToDefaultBlock = ({ onlyIn = [], defaultBlock = 'paragraph' }) => ({ + onKeyDown(e, data, state) { + if (data.key != 'enter' || e.shiftKey == true || state.isExpanded) return; + if (onlyIn.includes(state.startBlock.type)) { + return state.transform().insertBlock(defaultBlock).apply(); + } + } +}); + +const BreakToDefaultBlockOpts = { + onlyIn: ['heading-one', 'heading-two', 'heading-three', 'heading-four', 'heading-five', 'heading-six'], +}; + +export const BreakToDefaultBlockConfigured = BreakToDefaultBlock(BreakToDefaultBlockOpts); + const BackspaceCloseBlock = (options = {}) => ({ onKeyDown(e, data, state) { if (data.key != 'backspace') return; @@ -87,6 +102,7 @@ const plugins = [ SoftBreakConfigured, ParagraphSoftBreakConfigured, BackspaceCloseBlockConfigured, + BreakToDefaultBlockConfigured, EditListConfigured, EditTableConfigured, ];