Skip to content

Commit 14b8eee

Browse files
authored
RTE TinyMCE: Compares previous value in #onChange event (#18219)
* TinyMCE input: Compares previous value in onChange Fixes #18132 * Chore: import type ordering
1 parent 9c5768e commit 14b8eee

File tree

3 files changed

+13
-17
lines changed

3 files changed

+13
-17
lines changed

src/Umbraco.Web.UI.Client/src/packages/rte/components/rte-base.element.ts

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,16 @@
11
import type { UmbPropertyEditorUiValueType } from '../types.js';
22
import { UMB_BLOCK_RTE_PROPERTY_EDITOR_SCHEMA_ALIAS } from '../constants.js';
33
import { property, state } from '@umbraco-cms/backoffice/external/lit';
4+
import { observeMultiple } from '@umbraco-cms/backoffice/observable-api';
5+
import { UmbBlockRteEntriesContext, UmbBlockRteManagerContext } from '@umbraco-cms/backoffice/block-rte';
46
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
57
import { UmbPropertyValueChangeEvent } from '@umbraco-cms/backoffice/property-editor';
8+
import { UMB_PROPERTY_CONTEXT, UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property';
9+
import type { UmbBlockRteTypeModel } from '@umbraco-cms/backoffice/block-rte';
610
import type {
711
UmbPropertyEditorUiElement,
812
UmbPropertyEditorConfigCollection,
913
} from '@umbraco-cms/backoffice/property-editor';
10-
import {
11-
UmbBlockRteEntriesContext,
12-
UmbBlockRteManagerContext,
13-
type UmbBlockRteTypeModel,
14-
} from '@umbraco-cms/backoffice/block-rte';
15-
import { UMB_PROPERTY_CONTEXT, UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property';
16-
import { observeMultiple } from '@umbraco-cms/backoffice/observable-api';
1714

1815
export abstract class UmbPropertyEditorUiRteElementBase extends UmbLitElement implements UmbPropertyEditorUiElement {
1916
public set config(config: UmbPropertyEditorConfigCollection | undefined) {
@@ -189,6 +186,7 @@ export abstract class UmbPropertyEditorUiRteElementBase extends UmbLitElement im
189186
this.#managerContext.removeManySettings(unusedSettingsKeys);
190187
this.#managerContext.removeManyLayouts(unusedContentKeys);
191188
}
189+
192190
protected _fireChangeEvent() {
193191
this.dispatchEvent(new UmbPropertyValueChangeEvent());
194192
}

src/Umbraco.Web.UI.Client/src/packages/tiny-mce/components/input-tiny-mce/input-tiny-mce.element.ts

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,20 @@ import { defaultFallbackConfig } from './input-tiny-mce.defaults.js';
33
import { pastePreProcessHandler } from './input-tiny-mce.handlers.js';
44
import { uriAttributeSanitizer } from './input-tiny-mce.sanitizer.js';
55
import type { UmbTinyMcePluginBase } from './tiny-mce-plugin.js';
6-
import { type ClassConstructor, loadManifestApi } from '@umbraco-cms/backoffice/extension-api';
76
import { css, customElement, html, property, query } from '@umbraco-cms/backoffice/external/lit';
7+
import { loadManifestApi } from '@umbraco-cms/backoffice/extension-api';
88
import { getProcessedImageUrl, umbDeepMerge } from '@umbraco-cms/backoffice/utils';
9+
import { renderEditor } from '@umbraco-cms/backoffice/external/tinymce';
910
import { umbExtensionsRegistry } from '@umbraco-cms/backoffice/extension-registry';
11+
import { ImageCropModeModel } from '@umbraco-cms/backoffice/external/backend-api';
1012
import { UmbChangeEvent } from '@umbraco-cms/backoffice/event';
1113
import { UmbLitElement } from '@umbraco-cms/backoffice/lit-element';
1214
import { UmbStylesheetDetailRepository, UmbStylesheetRuleManager } from '@umbraco-cms/backoffice/stylesheet';
1315
import { UUIFormControlMixin } from '@umbraco-cms/backoffice/external/uui';
14-
import {
15-
type EditorEvent,
16-
type Editor,
17-
type RawEditorOptions,
18-
renderEditor,
19-
} from '@umbraco-cms/backoffice/external/tinymce';
20-
import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor';
21-
import { ImageCropModeModel } from '@umbraco-cms/backoffice/external/backend-api';
16+
import type { ClassConstructor } from '@umbraco-cms/backoffice/extension-api';
17+
import type { EditorEvent, Editor, RawEditorOptions } from '@umbraco-cms/backoffice/external/tinymce';
2218
import type { ManifestTinyMcePlugin } from '@umbraco-cms/backoffice/tiny-mce';
19+
import type { UmbPropertyEditorConfigCollection } from '@umbraco-cms/backoffice/property-editor';
2320

2421
/**
2522
* Handles the resize event
@@ -367,6 +364,7 @@ export class UmbInputTinyMceElement extends UUIFormControlMixin(UmbLitElement, '
367364
}
368365

369366
#onChange(value: string) {
367+
if (this.value === value) return;
370368
this.value = value;
371369
this.dispatchEvent(new UmbChangeEvent());
372370
}

src/Umbraco.Web.UI.Client/src/packages/tiny-mce/property-editors/tiny-mce/property-editor-ui-tiny-mce.element.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import type { UmbInputTinyMceElement } from '../../components/input-tiny-mce/input-tiny-mce.element.js';
2-
import { UmbPropertyEditorUiRteElementBase, UMB_BLOCK_RTE_DATA_CONTENT_KEY } from '@umbraco-cms/backoffice/rte';
32
import { customElement, html } from '@umbraco-cms/backoffice/external/lit';
3+
import { UmbPropertyEditorUiRteElementBase, UMB_BLOCK_RTE_DATA_CONTENT_KEY } from '@umbraco-cms/backoffice/rte';
44

55
import '../../components/input-tiny-mce/input-tiny-mce.element.js';
66

0 commit comments

Comments
 (0)