From 9f12434ff0dacdafbdab9c289ad8f94de9a56ce5 Mon Sep 17 00:00:00 2001 From: yousefed Date: Wed, 25 Feb 2026 14:44:53 +0100 Subject: [PATCH 1/2] fix: typeerror cannot read properties ofundefined-reading --- packages/react/src/components/Popovers/GenericPopover.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/react/src/components/Popovers/GenericPopover.tsx b/packages/react/src/components/Popovers/GenericPopover.tsx index 0bc0b1958d..c5e40c88d4 100644 --- a/packages/react/src/components/Popovers/GenericPopover.tsx +++ b/packages/react/src/components/Popovers/GenericPopover.tsx @@ -27,6 +27,7 @@ export type GenericPopoverReference = cacheMountedBoundingClientRect?: boolean; } | { + element: undefined; // When no reference element is provided, this can be provided as an // alternative "virtual" element to position the popover around. getBoundingClientRect: () => DOMRect; @@ -62,7 +63,7 @@ export function getMountedBoundingClientRectCache( return () => { if ( - "element" in reference && + reference.element && (reference.cacheMountedBoundingClientRect ?? true) ) { if (reference.element.isConnected) { From fb7635843ee2f9f73e450eeb3203a3c5f758484d Mon Sep 17 00:00:00 2001 From: yousefed Date: Wed, 25 Feb 2026 14:48:34 +0100 Subject: [PATCH 2/2] fix compile --- .../GridSuggestionMenuController.tsx | 22 ++++++++++++------- .../SuggestionMenuController.tsx | 22 ++++++++++++------- 2 files changed, 28 insertions(+), 16 deletions(-) diff --git a/packages/react/src/components/SuggestionMenu/GridSuggestionMenu/GridSuggestionMenuController.tsx b/packages/react/src/components/SuggestionMenu/GridSuggestionMenu/GridSuggestionMenuController.tsx index a2c06b051b..7546d032fd 100644 --- a/packages/react/src/components/SuggestionMenu/GridSuggestionMenu/GridSuggestionMenuController.tsx +++ b/packages/react/src/components/SuggestionMenu/GridSuggestionMenu/GridSuggestionMenuController.tsx @@ -9,7 +9,10 @@ import { useExtensionState, } from "../../../hooks/useExtension.js"; import { FloatingUIOptions } from "../../Popovers/FloatingUIOptions.js"; -import { GenericPopover } from "../../Popovers/GenericPopover.js"; +import { + GenericPopover, + GenericPopoverReference, +} from "../../Popovers/GenericPopover.js"; import { getDefaultReactEmojiPickerItems } from "./getDefaultReactEmojiPickerItems.js"; import { GridSuggestionMenu } from "./GridSuggestionMenu.js"; import { GridSuggestionMenuWrapper } from "./GridSuggestionMenuWrapper.js"; @@ -95,13 +98,16 @@ export function GridSuggestionMenuController< const state = useExtensionState(SuggestionMenu); const reference = useExtensionState(SuggestionMenu, { - selector: (state) => ({ - // Use first child as the editor DOM element may itself be scrollable. - // For FloatingUI to auto-update the position during scrolling, the - // `contextElement` must be a descendant of the scroll container. - element: editor.domElement?.firstChild || undefined, - getBoundingClientRect: () => state?.referencePos || new DOMRect(), - }), + selector: (state) => + ({ + // Use first child as the editor DOM element may itself be scrollable. + // For FloatingUI to auto-update the position during scrolling, the + // `contextElement` must be a descendant of the scroll container. + element: (editor.domElement?.firstChild || undefined) as + | Element + | undefined, + getBoundingClientRect: () => state?.referencePos || new DOMRect(), + }) satisfies GenericPopoverReference, }); const floatingUIOptions = useMemo( diff --git a/packages/react/src/components/SuggestionMenu/SuggestionMenuController.tsx b/packages/react/src/components/SuggestionMenu/SuggestionMenuController.tsx index 57e313ce0d..2d004d6333 100644 --- a/packages/react/src/components/SuggestionMenu/SuggestionMenuController.tsx +++ b/packages/react/src/components/SuggestionMenu/SuggestionMenuController.tsx @@ -9,7 +9,10 @@ import { FC, useEffect, useMemo } from "react"; import { useBlockNoteEditor } from "../../hooks/useBlockNoteEditor.js"; import { useExtension, useExtensionState } from "../../hooks/useExtension.js"; import { FloatingUIOptions } from "../Popovers/FloatingUIOptions.js"; -import { GenericPopover } from "../Popovers/GenericPopover.js"; +import { + GenericPopover, + GenericPopoverReference, +} from "../Popovers/GenericPopover.js"; import { SuggestionMenu } from "./SuggestionMenu.js"; import { SuggestionMenuWrapper } from "./SuggestionMenuWrapper.js"; import { getDefaultReactSlashMenuItems } from "./getDefaultReactSlashMenuItems.js"; @@ -90,13 +93,16 @@ export function SuggestionMenuController< const state = useExtensionState(SuggestionMenuExtension); const reference = useExtensionState(SuggestionMenuExtension, { - selector: (state) => ({ - // Use first child as the editor DOM element may itself be scrollable. - // For FloatingUI to auto-update the position during scrolling, the - // `contextElement` must be a descendant of the scroll container. - element: editor.domElement?.firstChild || undefined, - getBoundingClientRect: () => state?.referencePos || new DOMRect(), - }), + selector: (state) => + ({ + // Use first child as the editor DOM element may itself be scrollable. + // For FloatingUI to auto-update the position during scrolling, the + // `contextElement` must be a descendant of the scroll container. + element: (editor.domElement?.firstChild || undefined) as + | Element + | undefined, + getBoundingClientRect: () => state?.referencePos || new DOMRect(), + }) satisfies GenericPopoverReference, }); const floatingUIOptions = useMemo(