diff options
| author | bobzel <zzzman@gmail.com> | 2025-04-21 14:09:02 -0400 | 
|---|---|---|
| committer | bobzel <zzzman@gmail.com> | 2025-04-21 14:09:02 -0400 | 
| commit | 3162f50295569d1798ac2cc881e9e0455bd12fea (patch) | |
| tree | df401ec5ef79bdc9dcc77ab4bca74e667d6ca090 /src/client/views/nodes/formattedText/SummaryView.tsx | |
| parent | 6fde11fd2c1a1edc36adc463af526b6d33399d5b (diff) | |
| parent | 1f294ef4a171eec72a069a9503629eaf7975d983 (diff) | |
Merge branch 'master' into aarav_edit
Diffstat (limited to 'src/client/views/nodes/formattedText/SummaryView.tsx')
| -rw-r--r-- | src/client/views/nodes/formattedText/SummaryView.tsx | 7 | 
1 files changed, 5 insertions, 2 deletions
| diff --git a/src/client/views/nodes/formattedText/SummaryView.tsx b/src/client/views/nodes/formattedText/SummaryView.tsx index 6dea891a0..eeb604b57 100644 --- a/src/client/views/nodes/formattedText/SummaryView.tsx +++ b/src/client/views/nodes/formattedText/SummaryView.tsx @@ -59,12 +59,15 @@ export class SummaryView {          let endPos = start;          const visited = new Set(); -        for (let i: number = start + 1; i < view.state.doc.nodeSize - 1; i++) { +        const summarized = new Set(); +        const isSummary = (node: Node) => summarized.has(node) || node.marks.find(m => m.type === mtype || m.type === mtypeInc); +        for (let i = start + 1; i < view.state.doc.nodeSize - 1; i++) {              let skip = false;              // eslint-disable-next-line no-loop-func              view.state.doc.nodesBetween(start, i, (node: Node /* , pos: number, parent: Node, index: number */) => { +                isSummary(node) && Array.from(node.children).forEach(child => summarized.add(child));                  if (node.isLeaf && !visited.has(node) && !skip) { -                    if (node.marks.find(m => m.type === mtype || m.type === mtypeInc)) { +                    if (summarized.has(node) || isSummary(node)) {                          visited.add(node);                          endPos = i + node.nodeSize - 1;                      } else skip = true; | 
