File tree

4 files changed

+15
-9
lines changed

4 files changed

+15
-9
lines changed
Original file line numberDiff line numberDiff line change
@@ -238,15 +238,9 @@ export class MediaNode extends ElementNode {
238238

239239
createDOM(_config: EditorConfig, _editor: LexicalEditor) {
240240
const media = this.createInnerDOM();
241-
const wrap = el('span', {
241+
return el('span', {
242242
class: media.className + ' editor-media-wrap',
243243
}, [media]);
244-
245-
wrap.addEventListener('click', e => {
246-
_editor.update(() => $selectSingleNode(this));
247-
});
248-
249-
return wrap;
250244
}
251245

252246
updateDOM(prevNode: MediaNode, dom: HTMLElement): boolean {
Original file line numberDiff line numberDiff line change
@@ -224,6 +224,10 @@ export function getImageToolbarContent(): EditorUiElement[] {
224224
return [new EditorButton(image)];
225225
}
226226

227+
export function getMediaToolbarContent(): EditorUiElement[] {
228+
return [new EditorButton(media)];
229+
}
230+
227231
export function getLinkToolbarContent(): EditorUiElement[] {
228232
return [
229233
new EditorButton(link),
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,11 @@ export class EditorContextToolbar extends EditorContainerUiElement {
3434

3535
dom.hidden = !showing;
3636

37-
if (!showing) {
37+
if (!this.target.isConnected) {
38+
// If our target is no longer in the DOM, tell the manager an update is needed.
39+
this.getContext().manager.triggerFutureStateRefresh();
40+
return;
41+
} else if (!showing) {
3842
return;
3943
}
4044

Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import {
33
getCodeToolbarContent, getDetailsToolbarContent,
44
getImageToolbarContent,
55
getLinkToolbarContent,
6-
getMainEditorFullToolbar, getTableToolbarContent
6+
getMainEditorFullToolbar, getMediaToolbarContent, getTableToolbarContent
77
} from "./defaults/toolbars";
88
import {EditorUIManager} from "./framework/manager";
99
import {EditorUiContext} from "./framework/core";
@@ -44,6 +44,10 @@ export function buildEditorUI(container: HTMLElement, element: HTMLElement, scro
4444
selector: 'img:not([drawio-diagram] img)',
4545
content: getImageToolbarContent(),
4646
});
47+
manager.registerContextToolbar('media', {
48+
selector: '.editor-media-wrap',
49+
content: getMediaToolbarContent(),
50+
});
4751
manager.registerContextToolbar('link', {
4852
selector: 'a',
4953
content: getLinkToolbarContent(),

0 commit comments

Comments
 (0)