Skip to content

Commit a2b2ecb

Browse files
nielslyngsoeiOvergaardAndrej Davidovič
authored
Fix: rename and implement fallbackRenderMethod (#20005)
* rename and implement fallbackRender * re introducing method as part of the name * rename impls --------- Co-authored-by: Jacob Overgaard <[email protected]> Co-authored-by: Andrej Davidovič <[email protected]>
1 parent 279409d commit a2b2ecb

File tree

5 files changed

+36
-14
lines changed

5 files changed

+36
-14
lines changed

src/Umbraco.Web.UI.Client/src/packages/block/block-grid/components/block-grid-entry/block-grid-entry.element.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -467,7 +467,7 @@ export class UmbBlockGridEntryElement extends UmbLitElement implements UmbProper
467467
<umb-extension-slot
468468
.filter=${this.#extensionSlotFilterMethod}
469469
.renderMethod=${this.#extensionSlotRenderMethod}
470-
.defaultRenderMethod=${this.#renderBuiltinBlockView}
470+
.fallbackRenderMethod=${this.#renderBuiltinBlockView}
471471
.props=${this._blockViewProps}
472472
default-element=${this._inlineEditingMode ? 'umb-block-grid-block-inline' : 'umb-block-grid-block'}
473473
type="blockEditorCustomView"

src/Umbraco.Web.UI.Client/src/packages/block/block-list/components/block-list-entry/block-list-entry.element.ts

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -399,15 +399,15 @@ export class UmbBlockListEntryElement extends UmbLitElement implements UmbProper
399399
${umbDestroyOnDisconnect()}></umb-unsupported-list-block>`;
400400
}
401401

402-
#renderBuiltinBlockView() {
402+
#renderBuiltinBlockView = () => {
403403
if (this._unsupported) {
404404
return this.#renderUnsupportedBlock();
405405
}
406406
if (this._inlineEditingMode) {
407407
return this.#renderInlineBlock();
408408
}
409409
return this.#renderRefBlock();
410-
}
410+
};
411411

412412
#renderBlock() {
413413
return this.contentKey && (this._contentTypeAlias || this._unsupported)
@@ -417,11 +417,10 @@ export class UmbBlockListEntryElement extends UmbLitElement implements UmbProper
417417
type="blockEditorCustomView"
418418
default-element=${this._inlineEditingMode ? 'umb-inline-list-block' : 'umb-ref-list-block'}
419419
.renderMethod=${this.#extensionSlotRenderMethod}
420+
.fallbackRenderMethod=${this.#renderBuiltinBlockView}
420421
.props=${this._blockViewProps}
421422
.filter=${this.#extensionSlotFilterMethod}
422-
single
423-
>${this.#renderBuiltinBlockView()}</umb-extension-slot
424-
>
423+
single></umb-extension-slot>
425424
${this.#renderActionBar()}
426425
${!this._showContentEdit && this._contentInvalid
427426
? html`<uui-badge attention color="invalid" label="Invalid content">!</uui-badge>`

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

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -277,11 +277,10 @@ export class UmbBlockRteEntryElement extends UmbLitElement implements UmbPropert
277277
type="blockEditorCustomView"
278278
default-element="umb-ref-rte-block"
279279
.renderMethod=${this.#extensionSlotRenderMethod}
280+
.fallbackRenderMethod=${this.#renderBuiltinBlockView}
280281
.props=${this._blockViewProps}
281282
.filter=${this.#filterBlockCustomViews}
282-
single>
283-
${this.#renderRefBlock()}
284-
</umb-extension-slot>
283+
single></umb-extension-slot>
285284
${this.#renderActionBar()}
286285
${!this._showContentEdit && this._contentInvalid
287286
? html`<uui-badge attention color="invalid" label="Invalid content">!</uui-badge>`
@@ -297,6 +296,14 @@ export class UmbBlockRteEntryElement extends UmbLitElement implements UmbPropert
297296
: nothing;
298297
}
299298

299+
#renderBuiltinBlockView = () => {
300+
// TODO: Missing unsupported rendering [NL]
301+
/*if (this._unsupported) {
302+
return this.#renderUnsupportedBlock();
303+
}*/
304+
return this.#renderRefBlock();
305+
};
306+
300307
#renderRefBlock() {
301308
return html`<umb-ref-rte-block
302309
.label=${this._label}

src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/components/extension-slot/extension-slot.element.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ export class UmbExtensionSlotElement extends UmbLitElement {
9898
) => TemplateResult | TemplateResult<1> | HTMLElement | null | undefined | typeof nothing;
9999

100100
@property({ attribute: false })
101-
public defaultRenderMethod?: () =>
101+
public fallbackRenderMethod?: () =>
102102
| TemplateResult
103103
| TemplateResult<1>
104104
| HTMLElement
@@ -142,15 +142,18 @@ export class UmbExtensionSlotElement extends UmbLitElement {
142142
}
143143

144144
override render() {
145+
// First renders something once _permitted is set, this is to avoid flickering. [NL]
145146
return this._permitted
146147
? this._permitted.length > 0
147148
? repeat(this._permitted, (ext) => ext.alias, this.#renderExtension)
148-
: this.defaultRenderMethod
149-
? this.defaultRenderMethod()
150-
: html`<slot></slot>`
149+
: this.#renderNoting()
151150
: nothing;
152151
}
153152

153+
#renderNoting() {
154+
return this.fallbackRenderMethod ? this.fallbackRenderMethod() : html`<slot></slot>`;
155+
}
156+
154157
#renderExtension = (ext: UmbExtensionElementInitializer, i: number) => {
155158
return this.renderMethod ? this.renderMethod(ext, i) : ext.component;
156159
};

src/Umbraco.Web.UI.Client/src/packages/core/extension-registry/components/extension-with-api-slot/extension-with-api-slot.element.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,6 +143,15 @@ export class UmbExtensionWithApiSlotElement extends UmbLitElement {
143143
index: number,
144144
) => TemplateResult | TemplateResult<1> | HTMLElement | null | undefined | typeof nothing;
145145

146+
@property({ attribute: false })
147+
public fallbackRenderMethod?: () =>
148+
| TemplateResult
149+
| TemplateResult<1>
150+
| HTMLElement
151+
| null
152+
| undefined
153+
| typeof nothing;
154+
146155
override connectedCallback(): void {
147156
super.connectedCallback();
148157
this.#attached = true;
@@ -185,10 +194,14 @@ export class UmbExtensionWithApiSlotElement extends UmbLitElement {
185194
return this._permitted
186195
? this._permitted.length > 0
187196
? repeat(this._permitted, (ext) => ext.alias, this.#renderExtension)
188-
: html`<slot></slot>`
197+
: this.#renderNoting()
189198
: nothing;
190199
}
191200

201+
#renderNoting() {
202+
return this.fallbackRenderMethod ? this.fallbackRenderMethod() : html`<slot></slot>`;
203+
}
204+
192205
#renderExtension = (ext: UmbExtensionElementAndApiInitializer, i: number) => {
193206
return this.renderMethod ? this.renderMethod(ext, i) : ext.component;
194207
};

0 commit comments

Comments
 (0)