Skip to content

Commit f0933ba

Browse files
Allow LexicalTypeaheadMenuPlugin to work when inside an iframe (#5044)
Co-authored-by: tahkiu <39982625+tahkiu@users.noreply.github.com> Co-authored-by: Maksim Horbachevsky <fantactuka@gmail.com>
1 parent 3ef3cb7 commit f0933ba

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

packages/lexical-react/src/LexicalTypeaheadMenuPlugin.tsx

+5-4
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ function getTextUpToAnchor(selection: RangeSelection): string | null {
4545
return anchorNode.getTextContent().slice(0, anchorOffset);
4646
}
4747

48-
function tryToPositionRange(leadOffset: number, range: Range): boolean {
49-
const domSelection = window.getSelection();
48+
function tryToPositionRange(leadOffset: number, range: Range, editorWindow: Window): boolean {
49+
const domSelection = editorWindow.getSelection();
5050
if (domSelection === null || !domSelection.isCollapsed) {
5151
return false;
5252
}
@@ -236,7 +236,8 @@ export function LexicalTypeaheadMenuPlugin<TOption extends MenuOption>({
236236
useEffect(() => {
237237
const updateListener = () => {
238238
editor.getEditorState().read(() => {
239-
const range = document.createRange();
239+
const editorWindow = editor._window ?? window;
240+
const range = editorWindow.document.createRange();
240241
const selection = $getSelection();
241242
const text = getQueryTextForSearch(editor);
242243

@@ -257,7 +258,7 @@ export function LexicalTypeaheadMenuPlugin<TOption extends MenuOption>({
257258
match !== null &&
258259
!isSelectionOnEntityBoundary(editor, match.leadOffset)
259260
) {
260-
const isRangePositioned = tryToPositionRange(match.leadOffset, range);
261+
const isRangePositioned = tryToPositionRange(match.leadOffset, range, editorWindow);
261262
if (isRangePositioned !== null) {
262263
startTransition(() =>
263264
openTypeahead({

0 commit comments

Comments
 (0)