From b0978606192b7969b7603a54c9ae1d3229653371 Mon Sep 17 00:00:00 2001 From: iskaktoltay Date: Fri, 23 Feb 2024 15:55:18 +0600 Subject: [PATCH] editor: made media blocks indentable after click selecting them. fixed bug where media blocks would lose their URL attribute on unindent --- .../BlockManipulationExtension.ts | 1 + .../Blocks/helpers/getGroupInfoFromPos.ts | 2 +- .../extensions/Blocks/nodes/BlockContainer.ts | 15 +++++++-------- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/frontend/packages/editor/src/blocknote/core/extensions/BlockManipulation/BlockManipulationExtension.ts b/frontend/packages/editor/src/blocknote/core/extensions/BlockManipulation/BlockManipulationExtension.ts index 3636ed8a7..082a695e5 100644 --- a/frontend/packages/editor/src/blocknote/core/extensions/BlockManipulation/BlockManipulationExtension.ts +++ b/frontend/packages/editor/src/blocknote/core/extensions/BlockManipulation/BlockManipulationExtension.ts @@ -68,6 +68,7 @@ export const BlockManipulationExtension = Extension.create({ const selection = NodeSelection.create(view.state.doc, nodePos) tr = tr.setSelection(selection) view.dispatch(tr) + view.focus() return true } return false diff --git a/frontend/packages/editor/src/blocknote/core/extensions/Blocks/helpers/getGroupInfoFromPos.ts b/frontend/packages/editor/src/blocknote/core/extensions/Blocks/helpers/getGroupInfoFromPos.ts index d713eedcb..1df805a68 100644 --- a/frontend/packages/editor/src/blocknote/core/extensions/Blocks/helpers/getGroupInfoFromPos.ts +++ b/frontend/packages/editor/src/blocknote/core/extensions/Blocks/helpers/getGroupInfoFromPos.ts @@ -42,7 +42,7 @@ export function getGroupInfoFromPos( group, container, depth, - level: (maxDepth - 1) / 2, + level: Math.ceil((maxDepth - 1) / 2), $pos, } } diff --git a/frontend/packages/editor/src/blocknote/core/extensions/Blocks/nodes/BlockContainer.ts b/frontend/packages/editor/src/blocknote/core/extensions/Blocks/nodes/BlockContainer.ts index 7950f6c3c..e38e991a9 100644 --- a/frontend/packages/editor/src/blocknote/core/extensions/Blocks/nodes/BlockContainer.ts +++ b/frontend/packages/editor/src/blocknote/core/extensions/Blocks/nodes/BlockContainer.ts @@ -702,16 +702,13 @@ export const BlockContainer = Node.create<{ const posAddition = container.type.name === 'blockContainer' ? -1 : 0 - if (newLevel !== child.attrs.listLevel) - state.tr.setNodeMarkup( + if (newLevel !== child.attrs.listLevel) { + state.tr.setNodeAttribute( groupPos.start() + pos + posAddition, - null, - { - ...child.attrs, - listType: listType, - listLevel: newLevel, - }, + 'listLevel', + newLevel, ) + } } }) return true @@ -1329,6 +1326,8 @@ export const BlockContainer = Node.create<{ state, ) + if (group.attrs.listType === 'div') return false + if (container) { setTimeout(() => { this.editor.commands.UpdateGroupChildren(