use slotchange callback + clean up

This commit is contained in:
Niels Lyngsø
2024-11-05 10:41:52 +01:00
parent e7272791e5
commit 2941b35013
2 changed files with 5 additions and 7 deletions

View File

@@ -33,12 +33,13 @@ export class UmbWorkspaceSplitViewElement extends UmbLitElement {
@state()
private _variantSelectorSlotHasContent = false;
private _variantSelectorSlotChanged = (e: Event) => {
this._variantSelectorSlotHasContent = (e.target as HTMLSlotElement).assignedNodes({ flatten: true }).length > 0;
};
splitViewContext = new UmbWorkspaceSplitViewContext(this);
#onVariantSelectorSlotChanged(e: Event) {
this._variantSelectorSlotHasContent = (e.target as HTMLSlotElement).assignedNodes({ flatten: true }).length > 0;
}
override render() {
return html`
<umb-workspace-editor
@@ -46,7 +47,7 @@ export class UmbWorkspaceSplitViewElement extends UmbLitElement {
back-path=${ifDefined(this.backPath)}
.hideNavigation=${!this.displayNavigation}
.enforceNoFooter=${true}>
<slot id="header" name="variant-selector" slot="header">
<slot id="header" name="variant-selector" slot="header" @slotchange=${this.#onVariantSelectorSlotChanged}>
${this._variantSelectorSlotHasContent
? nothing
: html`<umb-workspace-split-view-variant-selector></umb-workspace-split-view-variant-selector>`}

View File

@@ -2,7 +2,6 @@ import type { UmbDocumentVariantOptionModel } from '../types.js';
import { sortVariants } from '../utils.js';
import { customElement, html } from '@umbraco-cms/backoffice/external/lit';
import { DocumentVariantStateModel } from '@umbraco-cms/backoffice/external/backend-api';
import { UmbTextStyles } from '@umbraco-cms/backoffice/style';
import { UmbWorkspaceSplitViewVariantSelectorElement } from '@umbraco-cms/backoffice/workspace';
const elementName = 'umb-document-workspace-split-view-variant-selector';
@@ -22,8 +21,6 @@ export class UmbDocumentWorkspaceSplitViewVariantSelectorElement extends UmbWork
this.#publishStateLocalizationMap[variantOption.variant?.state || DocumentVariantStateModel.NOT_CREATED],
)}`;
}
static override styles = [...UmbWorkspaceSplitViewVariantSelectorElement.styles, UmbTextStyles];
}
declare global {