From b03ea6bf2c6a9a3bee903bf2e34a524cd684dcde Mon Sep 17 00:00:00 2001 From: Jacob Overgaard <752371+iOvergaard@users.noreply.github.com> Date: Mon, 3 Jun 2024 14:43:05 +0200 Subject: [PATCH] fix: use `umbDeepMerge` to merge config coming in twice over in order not to overwrite --- .../input-tiny-mce/input-tiny-mce.element.ts | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts index 8c5964662a..650aacc0f6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts @@ -5,7 +5,7 @@ import { uriAttributeSanitizer } from './input-tiny-mce.sanitizer.js'; import type { UmbTinyMcePluginBase } from './tiny-mce-plugin.js'; import { type ClassConstructor, loadManifestApi } from '@umbraco-cms/backoffice/extension-api'; import { css, customElement, html, property, query } from '@umbraco-cms/backoffice/external/lit'; -import { getProcessedImageUrl } from '@umbraco-cms/backoffice/utils'; +import { getProcessedImageUrl, umbDeepMerge } from '@umbraco-cms/backoffice/utils'; import { type ManifestTinyMcePlugin, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry'; import { UmbChangeEvent } from '@umbraco-cms/backoffice/event'; import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element'; @@ -95,10 +95,10 @@ export class UmbInputTinyMceElement extends UUIFormControlMixin(UmbLitElement, ' let config: RawEditorOptions = {}; manifests.forEach((manifest) => { if (manifest.meta?.config) { - // TODO: Deep merge config - config = { ...config, ...manifest.meta.config }; + config = umbDeepMerge(manifest.meta.config, config); } }); + this.#setTinyConfig(config); }); } @@ -227,7 +227,7 @@ export class UmbInputTinyMceElement extends UUIFormControlMixin(UmbLitElement, ' } // set the default values that will not be modified via configuration - const config: RawEditorOptions = { + let config: RawEditorOptions = { autoresize_bottom_margin: 10, body_class: 'umb-rte', contextMenu: false, @@ -245,12 +245,12 @@ export class UmbInputTinyMceElement extends UUIFormControlMixin(UmbLitElement, ' // Extend with configuration options ...configurationOptions, - - // Extend with additional configuration options - //...additionalConfig, // TODO: Deep merge }; - console.log('tried to set config', additionalConfig); + // Extend with additional configuration options + if (additionalConfig) { + config = umbDeepMerge(additionalConfig, config); + } this.#editorRef?.destroy();