From b7da85381da81128bde96ece361f16b402643f4c Mon Sep 17 00:00:00 2001 From: nikita Date: Sun, 4 Aug 2024 14:03:11 +0300 Subject: [PATCH 1/2] =?UTF-8?q?QAGDEV-688=20=E2=80=93=20[FE]=20=D0=9F?= =?UTF-8?q?=D1=80=D0=B8=20=D1=80=D0=B5=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B8=20=D1=81=D1=81=D1=8B=D0=BB?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=B2=20=D1=83=D1=80=D0=BE=D0=BA=D0=B5=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=BA=D1=80=D1=8B=D0=B2=D0=B0=D0=B5=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20v2.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controls/menu-button-edit-link.tsx | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/shared/lib/mui-tiptap/controls/menu-button-edit-link.tsx b/src/shared/lib/mui-tiptap/controls/menu-button-edit-link.tsx index b9e464fa..845b4306 100644 --- a/src/shared/lib/mui-tiptap/controls/menu-button-edit-link.tsx +++ b/src/shared/lib/mui-tiptap/controls/menu-button-edit-link.tsx @@ -1,5 +1,6 @@ import Link from "@mui/icons-material/Link"; import { useRef } from "react"; +import { type PopoverOrigin } from "@mui/material"; import { Maybe } from "api/graphql/generated/graphql"; @@ -11,6 +12,17 @@ export type MenuButtonEditLinkProps = Partial; export default function MenuButtonEditLink(props: MenuButtonEditLinkProps) { const editor = useRichTextEditorContext(); const buttonRef = useRef>(null); + + const anchorOrigin: PopoverOrigin = { + vertical: "bottom", + horizontal: "center", + }; + + const transformOrigin: PopoverOrigin = { + vertical: "top", + horizontal: "center", + }; + return ( editor?.commands.openLinkBubbleMenu({ anchorEl: buttonRef.current, - placement: "bottom", + placement: { + anchorOrigin, + transformOrigin, + }, }) } {...props} From 49e788d94704fd9859eedc291010b0a838804966 Mon Sep 17 00:00:00 2001 From: Vasilisa Shelkova <100698142+shelkovichka@users.noreply.github.com> Date: Mon, 5 Aug 2024 14:20:56 +0200 Subject: [PATCH 2/2] =?UTF-8?q?QAGDEV-688=20=E2=80=93=20[FE]=20=D0=9F?= =?UTF-8?q?=D1=80=D0=B8=20=D1=80=D0=B5=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80?= =?UTF-8?q?=D0=BE=D0=B2=D0=B0=D0=BD=D0=B8=D0=B8=20=D1=81=D1=81=D1=8B=D0=BB?= =?UTF-8?q?=D0=BA=D0=B8=20=D0=B2=20=D1=83=D1=80=D0=BE=D0=BA=D0=B5=20=D0=BD?= =?UTF-8?q?=D0=B5=20=D0=B7=D0=B0=D0=BA=D1=80=D1=8B=D0=B2=D0=B0=D0=B5=D1=82?= =?UTF-8?q?=D1=81=D1=8F=20=D1=84=D0=BE=D1=80=D0=BC=D0=B0=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B4=D0=B0=D0=BA=D1=82=D0=B8=D1=80=D0=BE=D0=B2=D0=B0=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20v3.0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mui-tiptap/controls/controlled-bubble-menu.tsx | 8 ++++---- .../mui-tiptap/controls/link-bubble-menu/index.tsx | 11 +++++++---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/src/shared/lib/mui-tiptap/controls/controlled-bubble-menu.tsx b/src/shared/lib/mui-tiptap/controls/controlled-bubble-menu.tsx index a46e1750..12c84455 100644 --- a/src/shared/lib/mui-tiptap/controls/controlled-bubble-menu.tsx +++ b/src/shared/lib/mui-tiptap/controls/controlled-bubble-menu.tsx @@ -2,18 +2,18 @@ import { ReactNode, useCallback } from "react"; import { Fade, Paper, - Popover, - useTheme, type PaperProps, + Popover, type PopoverProps, type PopoverVirtualElement, + useTheme, } from "@mui/material"; -import { isNodeSelection, posToDOMRect, type Editor } from "@tiptap/core"; +import { type Editor, isNodeSelection, posToDOMRect } from "@tiptap/core"; import { makeStyles } from "tss-react/mui"; import { Maybe } from "api/graphql/generated/graphql"; -import { Z_INDEXES, getUtilityClasses } from "../styles"; +import { getUtilityClasses, Z_INDEXES } from "../styles"; export type ControlledBubbleMenuClasses = ReturnType< typeof useStyles diff --git a/src/shared/lib/mui-tiptap/controls/link-bubble-menu/index.tsx b/src/shared/lib/mui-tiptap/controls/link-bubble-menu/index.tsx index 328fe5c0..e49bc3ab 100644 --- a/src/shared/lib/mui-tiptap/controls/link-bubble-menu/index.tsx +++ b/src/shared/lib/mui-tiptap/controls/link-bubble-menu/index.tsx @@ -1,6 +1,6 @@ -/// import { makeStyles } from "tss-react/mui"; import type { Except } from "type-fest"; +import { useEffect } from "react"; import ControlledBubbleMenu, { type ControlledBubbleMenuProps, @@ -38,6 +38,12 @@ export default function LinkBubbleMenu({ const { classes } = useStyles(); const editor = useRichTextEditorContext(); + useEffect(() => { + if (editor?.isEditable && "linkBubbleMenuHandler" in editor.storage) { + handleClose(); + } + }, [location.pathname, editor]); + if (!editor?.isEditable) { return null; } @@ -82,7 +88,6 @@ export default function LinkBubbleMenu({ onSave={({ text, link }) => { editor .chain() - .extendMarkRange("link") .insertContent({ type: "text", @@ -96,11 +101,9 @@ export default function LinkBubbleMenu({ ], text, }) - .setLink({ href: link, }) - .focus() .run();