diff --git a/packages/editor/document-editor/src/ui/extensions/widgets/issue-embed-suggestion-list/issue-suggestion-renderer.tsx b/packages/editor/document-editor/src/ui/extensions/widgets/issue-embed-suggestion-list/issue-suggestion-renderer.tsx
index 637afe29c2..21360f1232 100644
--- a/packages/editor/document-editor/src/ui/extensions/widgets/issue-embed-suggestion-list/issue-suggestion-renderer.tsx
+++ b/packages/editor/document-editor/src/ui/extensions/widgets/issue-embed-suggestion-list/issue-suggestion-renderer.tsx
@@ -78,7 +78,6 @@ const IssueSuggestionList = ({
const navigationKeys = ["ArrowUp", "ArrowDown", "Enter", "Tab"];
const onKeyDown = (e: KeyboardEvent) => {
if (navigationKeys.includes(e.key)) {
- e.preventDefault();
// if (editor.isFocused) {
// editor.chain().blur();
// commandListContainer.current?.focus();
@@ -107,7 +106,6 @@ const IssueSuggestionList = ({
}
if (e.key === "Enter") {
selectItem(currentSection, selectedIndex);
- e.stopPropagation();
return true;
}
if (e.key === "Tab") {
@@ -150,7 +148,7 @@ const IssueSuggestionList = ({
{sections.map((section) => {
const sectionItems = displayedItems[section];
@@ -193,29 +191,35 @@ const IssueSuggestionList = ({
) : null;
};
-
export const IssueListRenderer = () => {
let component: ReactRenderer | null = null;
let popup: any | null = null;
return {
onStart: (props: { editor: Editor; clientRect?: (() => DOMRect | null) | null }) => {
+ const container = document.querySelector(".frame-renderer") as HTMLElement;
component = new ReactRenderer(IssueSuggestionList, {
props,
// @ts-ignore
editor: props.editor,
});
-
// @ts-ignore
- popup = tippy("body", {
+ popup = tippy(".frame-renderer", {
+ flipbehavior: ["bottom", "top"],
+ appendTo: () => document.querySelector(".frame-renderer") as HTMLElement,
+ flip: true,
+ flipOnUpdate: true,
getReferenceClientRect: props.clientRect,
- appendTo: () => document.querySelector("#editor-container"),
content: component.element,
showOnCreate: true,
interactive: true,
trigger: "manual",
placement: "bottom-start",
});
+
+ container.addEventListener("scroll", () => {
+ popup?.[0].destroy();
+ });
},
onUpdate: (props: { editor: Editor; clientRect?: (() => DOMRect | null) | null }) => {
component?.updateProps(props);
@@ -230,10 +234,20 @@ export const IssueListRenderer = () => {
popup?.[0].hide();
return true;
}
- // @ts-ignore
- return component?.ref?.onKeyDown(props);
+
+ const navigationKeys = ["ArrowUp", "ArrowDown", "Enter", "Tab"];
+ if (navigationKeys.includes(props.event.key)) {
+ // @ts-ignore
+ component?.ref?.onKeyDown(props);
+ return true;
+ }
+ return false;
},
- onExit: (e) => {
+ onExit: () => {
+ const container = document.querySelector(".frame-renderer") as HTMLElement;
+ if (container) {
+ container.removeEventListener("scroll", () => {});
+ }
popup?.[0].destroy();
setTimeout(() => {
component?.destroy();
diff --git a/packages/editor/document-editor/src/ui/index.tsx b/packages/editor/document-editor/src/ui/index.tsx
index e88632c3b4..6b962557d8 100644
--- a/packages/editor/document-editor/src/ui/index.tsx
+++ b/packages/editor/document-editor/src/ui/index.tsx
@@ -158,11 +158,11 @@ const DocumentEditor = ({
documentDetails={documentDetails}
isSubmitting={isSubmitting}
/>
-