@@ -19,6 +19,7 @@ import { useEditorState } from "../../../hooks/useEditorState.js";
1919import { useExtension } from "../../../hooks/useExtension.js" ;
2020import { useDictionary } from "../../../i18n/dictionary.js" ;
2121import { EditLinkMenuItems } from "../../LinkToolbar/EditLinkMenuItems.js" ;
22+ import { useEditorChange } from "../../../hooks/useEditorChange.js" ;
2223
2324function 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