createDOM(_config: EditorConfig, _editor: LexicalEditor) {
const media = this.createInnerDOM();
- const wrap = el('span', {
+ return el('span', {
class: media.className + ' editor-media-wrap',
}, [media]);
-
- wrap.addEventListener('click', e => {
- _editor.update(() => $selectSingleNode(this));
- });
-
- return wrap;
}
updateDOM(prevNode: MediaNode, dom: HTMLElement): boolean {
return [new EditorButton(image)];
}
+export function getMediaToolbarContent(): EditorUiElement[] {
+ return [new EditorButton(media)];
+}
+
export function getLinkToolbarContent(): EditorUiElement[] {
return [
new EditorButton(link),
dom.hidden = !showing;
- if (!showing) {
+ if (!this.target.isConnected) {
+ // If our target is no longer in the DOM, tell the manager an update is needed.
+ this.getContext().manager.triggerFutureStateRefresh();
+ return;
+ } else if (!showing) {
return;
}
getCodeToolbarContent, getDetailsToolbarContent,
getImageToolbarContent,
getLinkToolbarContent,
- getMainEditorFullToolbar, getTableToolbarContent
+ getMainEditorFullToolbar, getMediaToolbarContent, getTableToolbarContent
} from "./defaults/toolbars";
import {EditorUIManager} from "./framework/manager";
import {EditorUiContext} from "./framework/core";
selector: 'img:not([drawio-diagram] img)',
content: getImageToolbarContent(),
});
+ manager.registerContextToolbar('media', {
+ selector: '.editor-media-wrap',
+ content: getMediaToolbarContent(),
+ });
manager.registerContextToolbar('link', {
selector: 'a',
content: getLinkToolbarContent(),