Skip to content

Commit 69224cb

Browse files
authored
Tiptap RTE: Toolbar/statusbar config initial value state (#19514)
Tiptap configuration waits until initialized to set value Fixes #19009
1 parent 89b2120 commit 69224cb

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

src/Umbraco.Web.UI.Client/src/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-statusbar-configuration.element.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,8 @@ export class UmbPropertyEditorUiTiptapStatusbarConfigurationElement
2020
this._availableExtensions = this.#context.filterExtensions(query);
2121
}, 250);
2222

23+
#initialized = false;
24+
2325
@state()
2426
private _availableExtensions: Array<UmbTiptapStatusbarExtension> = [];
2527

@@ -33,6 +35,7 @@ export class UmbPropertyEditorUiTiptapStatusbarConfigurationElement
3335
this.#value = value;
3436
}
3537
get value(): UmbTiptapStatusbarValue | undefined {
38+
if (this.#value === undefined) return undefined;
3639
return this.#context.cloneStatusbarValue(this.#value);
3740
}
3841
#value?: UmbTiptapStatusbarValue;
@@ -54,14 +57,17 @@ export class UmbPropertyEditorUiTiptapStatusbarConfigurationElement
5457
this.observe(this.#context.statusbar, (statusbar) => {
5558
if (!statusbar.length) return;
5659
this._statusbar = statusbar;
57-
this.#value = statusbar.map((area) => [...area.data]);
58-
propertyContext?.setValue(this.#value);
60+
if (this.#initialized) {
61+
this.#value = statusbar.map((area) => [...area.data]);
62+
propertyContext?.setValue(this.#value);
63+
}
5964
});
6065
});
6166
}
6267

6368
protected override firstUpdated() {
6469
this.#context.setStatusbar(this.#value);
70+
this.#initialized = true;
6571
}
6672

6773
#onClick(item: UmbTiptapStatusbarExtension) {

src/Umbraco.Web.UI.Client/src/packages/tiptap/property-editors/tiptap/components/property-editor-ui-tiptap-toolbar-configuration.element.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ export class UmbPropertyEditorUiTiptapToolbarConfigurationElement
2424
this._availableExtensions = this.#context.filterExtensions(query);
2525
}, 250);
2626

27+
#initialized = false;
28+
2729
@state()
2830
private _availableExtensions: Array<UmbTiptapToolbarExtension> = [];
2931

@@ -37,6 +39,7 @@ export class UmbPropertyEditorUiTiptapToolbarConfigurationElement
3739
this.#value = this.#context.isValidToolbarValue(value) ? value : [[[]]];
3840
}
3941
get value(): UmbTiptapToolbarValue | undefined {
42+
if (this.#value === undefined) return undefined;
4043
return this.#context.cloneToolbarValue(this.#value);
4144
}
4245
#value?: UmbTiptapToolbarValue;
@@ -58,14 +61,17 @@ export class UmbPropertyEditorUiTiptapToolbarConfigurationElement
5861
this.observe(this.#context.toolbar, (toolbar) => {
5962
if (!toolbar.length) return;
6063
this._toolbar = toolbar;
61-
this.#value = toolbar.map((rows) => rows.data.map((groups) => [...groups.data]));
62-
propertyContext?.setValue(this.#value);
64+
if (this.#initialized) {
65+
this.#value = toolbar.map((rows) => rows.data.map((groups) => [...groups.data]));
66+
propertyContext?.setValue(this.#value);
67+
}
6368
});
6469
});
6570
}
6671

6772
protected override firstUpdated() {
6873
this.#context.setToolbar(this.value);
74+
this.#initialized = true;
6975
}
7076

7177
#onClick(item: UmbTiptapToolbarExtension) {

0 commit comments

Comments
 (0)