Skip to content

Commit de8db60

Browse files
committed
fix: update CreateLinkButton to be able to toggle popover visibility
Resolve #2313
1 parent 575b81c commit de8db60

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

packages/react/src/components/FormattingToolbar/DefaultButtons/CreateLinkButton.tsx

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ import { useEditorState } from "../../../hooks/useEditorState.js";
1919
import { useExtension } from "../../../hooks/useExtension.js";
2020
import { useDictionary } from "../../../i18n/dictionary.js";
2121
import { EditLinkMenuItems } from "../../LinkToolbar/EditLinkMenuItems.js";
22+
import { useEditorChange } from "../../../hooks/useEditorChange.js";
2223

2324
function checkLinkInSchema(
2425
editor: BlockNoteEditor<BlockSchema, any, StyleSchema>,
@@ -53,6 +54,11 @@ export const CreateLinkButton = () => {
5354
return () => showSelection(false);
5455
}, [showPopover, showSelection]);
5556

57+
useEditorChange(() => {
58+
// Close the popover when the editor is updated after a link has been created
59+
setShowPopover(false);
60+
}, editor);
61+
5662
const state = useEditorState({
5763
editor,
5864
selector: ({ editor }) => {
@@ -106,7 +112,10 @@ export const CreateLinkButton = () => {
106112
}
107113

108114
return (
109-
<Components.Generic.Popover.Root open={showPopover}>
115+
<Components.Generic.Popover.Root
116+
open={showPopover}
117+
onOpenChange={setShowPopover}
118+
>
110119
<Components.Generic.Popover.Trigger>
111120
{/* TODO: hide tooltip on click */}
112121
<Components.FormattingToolbar.Button
@@ -119,7 +128,7 @@ export const CreateLinkButton = () => {
119128
dict.generic.ctrl_shortcut,
120129
)}
121130
icon={<RiLink />}
122-
onClick={() => setShowPopover(true)}
131+
onClick={() => setShowPopover(open => !open)}
123132
/>
124133
</Components.Generic.Popover.Trigger>
125134
<Components.Generic.Popover.Content

0 commit comments

Comments
 (0)