Skip to content

Commit 8f488b3

Browse files
fix: guard against undefined/stale refs in comment interactions
1 parent 08e4304 commit 8f488b3

2 files changed

Lines changed: 16 additions & 6 deletions

File tree

packages/super-editor/src/core/commands/list-helpers/is-list.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,15 @@ import { getResolvedParagraphProperties } from '@extensions/paragraph/resolvedPr
44
* @param {import("prosemirror-model").Node} n - The ProseMirror node to check.
55
* @returns {boolean} True if the node is an ordered or bullet list, false otherwise
66
*/
7-
export const isList = (node) =>
8-
!!node &&
9-
node.type?.name === 'paragraph' &&
10-
getResolvedParagraphProperties(node).numberingProperties &&
11-
node.attrs?.listRendering;
7+
export const isList = (node) => {
8+
const resolvedProps = getResolvedParagraphProperties(node);
9+
const props = resolvedProps || node.attrs?.paragraphProperties; // fall back to raw props if uncached
10+
const numberingProps = props?.numberingProperties;
11+
12+
return (
13+
!!node &&
14+
node.type?.name === 'paragraph' &&
15+
numberingProps &&
16+
node.attrs?.listRendering
17+
);
18+
};

packages/superdoc/src/components/CommentsLayer/FloatingComments.vue

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,10 @@ watch(activeComment, (newVal, oldVal) => {
136136
verticalOffset.value = selectionTop - renderedTop;
137137
138138
setTimeout(() => {
139-
renderedItem.elementRef.value?.scrollIntoView({
139+
// elementRef may be stale/null after comment list re-renders
140+
const elementRef = renderedItem.elementRef;
141+
if (!elementRef) return;
142+
elementRef.value?.scrollIntoView({
140143
behavior: 'smooth',
141144
block: 'center',
142145
});

0 commit comments

Comments
 (0)