editor: fix search popup removed on link hover

This commit is contained in:
Abdullah Atta
2025-06-11 10:40:48 +05:00
parent 493ee81c42
commit a1f75dfed3
2 changed files with 13 additions and 14 deletions

View File

@@ -26,15 +26,17 @@ import {
import {
getPopupContainer,
getPopupRoot,
getToolbarElement,
unmountPopupRoot
getToolbarElement
} from "../../toolbar/utils/dom.js";
import {
useIsMobile,
useToolbarStore
} from "../../toolbar/stores/toolbar-store.js";
import React from "react";
import { ResponsivePresenter, ResponsivePresenterProps } from "../responsive/index.js";
import {
ResponsivePresenter,
ResponsivePresenterProps
} from "../responsive/index.js";
export type PopupWrapperProps = UsePopupHandlerOptions & {
autoCloseOnUnmount?: boolean;
@@ -106,11 +108,12 @@ type ShowPopupOptions = {
export function showPopup(options: ShowPopupOptions) {
const { popup, ...props } = options;
const root = getPopupRoot();
function hide() {
unmountPopupRoot();
root.unmount();
}
getPopupRoot().render(
root.render(
<ResponsivePresenter
isOpen
position={{

View File

@@ -17,7 +17,7 @@ You should have received a copy of the GNU General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
import { createRoot, Root } from "react-dom/client";
import { createRoot } from "react-dom/client";
export function getToolbarElement() {
return (
@@ -48,13 +48,9 @@ export function getEditorDOM() {
getEditorContainer()) as HTMLElement; // ProseMirror
}
let popupRoot: Root | undefined = undefined;
export function getPopupRoot() {
if (!popupRoot) popupRoot = createRoot(getPopupContainer());
return popupRoot;
}
export function unmountPopupRoot() {
if (popupRoot) popupRoot.unmount();
popupRoot = undefined;
const container = getPopupContainer();
const div = document.createElement("div");
container.appendChild(div);
return createRoot(div);
}