From 0e5e2e9bb3f21121f37c9456ea1684efc50389ce Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Tue, 28 May 2024 01:08:00 +0200 Subject: [PATCH] delete layout element --- .../context/block-rte-entries.context.ts | 1 + .../context/block-rte-manager.context.ts | 24 +++++++++++++++++++ 2 files changed, 25 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/context/block-rte-entries.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/context/block-rte-entries.context.ts index ab2ff44af7..abf91afa1c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/context/block-rte-entries.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/context/block-rte-entries.context.ts @@ -115,5 +115,6 @@ export class UmbBlockRteEntriesContext extends UmbBlockEntriesContext< async delete(contentUdi: string) { // TODO: Loop through children and delete them as well? await super.delete(contentUdi); + this._manager?.deleteLayoutElement(contentUdi); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/context/block-rte-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/context/block-rte-manager.context.ts index ad1f02748f..db584d17be 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/context/block-rte-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-rte/context/block-rte-manager.context.ts @@ -19,6 +19,18 @@ export class UmbBlockRteManagerContext< this.#editor = editor; } + getTinyMceEditor() { + return this.#editor; + } + + removeOneLayout(contentUdi: string) { + this._layouts.removeOne(contentUdi); + } + + getLayouts(): Array { + return this._layouts.getValue(); + } + create( contentElementTypeKey: string, partialLayoutEntry?: Omit, @@ -65,4 +77,16 @@ export class UmbBlockRteManagerContext< return true; } + + /** @internal */ + public deleteLayoutElement(contentUdi: string) { + if (!this.#editor) return; + + const blockElementsOfThisUdi = this.#editor.dom.select( + `umb-rte-block[data-content-udi='${contentUdi}'], umb-rte-block-inline[data-content-udi='${contentUdi}']`, + ); + blockElementsOfThisUdi.forEach((blockElement) => { + this.#editor?.dom.remove(blockElement); + }); + } }