From 2562de76b78dab479b45e03340fcfa513dada770 Mon Sep 17 00:00:00 2001 From: SpecialX <47072643+wangxiner55@users.noreply.github.com> Date: Wed, 24 Jun 2026 14:33:04 +0800 Subject: [PATCH] fix(exams): remove isolating to allow nested question blocks MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Root cause: questionBlock/groupBlock/sectionBlock had `isolating: true`, which prevents ProseMirror operations (wrapIn, insertContentAt) from inserting nodes inside these blocks. When users selected text inside a composite question and clicked "填空/简答" to create a sub-question, the new questionBlock was inserted OUTSIDE the composite block instead of inside it, so buildQuestion couldn't detect it as a subQuestion. Fix: remove `isolating: true` from all three block extensions. The `defining: true` property is sufficient to maintain node boundaries during normal editing operations. This allows wrapInQuestion to work correctly inside composite questions, creating properly nested sub-question blocks that are detected by buildQuestion's recursive parsing. --- src/modules/exams/editor/extensions/group-block.tsx | 1 - src/modules/exams/editor/extensions/question-block.tsx | 1 - src/modules/exams/editor/extensions/section-block.tsx | 1 - 3 files changed, 3 deletions(-) diff --git a/src/modules/exams/editor/extensions/group-block.tsx b/src/modules/exams/editor/extensions/group-block.tsx index 942562b..f6bd7b8 100644 --- a/src/modules/exams/editor/extensions/group-block.tsx +++ b/src/modules/exams/editor/extensions/group-block.tsx @@ -80,7 +80,6 @@ export const GroupBlock = Node.create({ group: "block", content: "block+", defining: true, - isolating: true, addAttributes() { return { title: { default: "" }, diff --git a/src/modules/exams/editor/extensions/question-block.tsx b/src/modules/exams/editor/extensions/question-block.tsx index c77b4de..9ab0ad3 100644 --- a/src/modules/exams/editor/extensions/question-block.tsx +++ b/src/modules/exams/editor/extensions/question-block.tsx @@ -64,7 +64,6 @@ export const QuestionBlock = Node.create({ group: "block", content: "block+", defining: true, - isolating: true, addAttributes() { return { questionId: { default: "" }, diff --git a/src/modules/exams/editor/extensions/section-block.tsx b/src/modules/exams/editor/extensions/section-block.tsx index 654cdc0..d11c413 100644 --- a/src/modules/exams/editor/extensions/section-block.tsx +++ b/src/modules/exams/editor/extensions/section-block.tsx @@ -86,7 +86,6 @@ export const SectionBlock = Node.create({ group: "block", content: "block+", defining: true, - isolating: true, addAttributes() { return { title: { default: "" },