only render segments if culture is created
This commit is contained in:
@@ -22,6 +22,7 @@ export interface UmbEntityVariantModel {
|
||||
segment: string | null;
|
||||
createDate: string | null;
|
||||
updateDate: string | null;
|
||||
state?: string | null;
|
||||
}
|
||||
|
||||
/** @deprecated use `UmbEntityVariantModel` instead */
|
||||
|
||||
@@ -260,8 +260,14 @@ export class UmbWorkspaceSplitViewVariantSelectorElement<
|
||||
return this._expandedVariants.find((expandedVariant) => expandedVariant.equal(variantId)) !== undefined;
|
||||
}
|
||||
|
||||
#getSegmentVariantOptionsForCulture(variantId: UmbVariantId): Array<VariantOptionModelType> {
|
||||
return this._variantOptions.filter((variant) => variant.culture === variantId.culture && variant.segment !== null);
|
||||
#getSegmentVariantOptionsForCulture(
|
||||
variantOption: VariantOptionModelType,
|
||||
variantId: UmbVariantId,
|
||||
): Array<VariantOptionModelType> {
|
||||
const segmentVariants = this._variantOptions.filter(
|
||||
(variant) => variant.culture === variantId.culture && variant.segment !== null,
|
||||
);
|
||||
return variantOption.variant ? segmentVariants : [];
|
||||
}
|
||||
|
||||
override render() {
|
||||
@@ -323,12 +329,8 @@ export class UmbWorkspaceSplitViewVariantSelectorElement<
|
||||
const variantId = UmbVariantId.Create(variantOption);
|
||||
return html`
|
||||
<li class="variant ${this.#isVariantActive(variantId) ? 'selected' : ''}">
|
||||
<uui-button
|
||||
class="expand-area"
|
||||
@click=${(event: PointerEvent) => this.#toggleExpansion(event, variantId)}
|
||||
compact>
|
||||
<uui-symbol-expand .open=${this.#isExpanded(variantId)}></uui-symbol-expand>
|
||||
</uui-button>
|
||||
<div class="expand-area">${this.#renderExpandToggle(variantOption, variantId)}</div>
|
||||
|
||||
<button
|
||||
class="variant-area switch-button ${this.#isCreateMode(variantOption) ? 'add-mode' : ''} ${this.#isReadOnly(
|
||||
variantId.culture,
|
||||
@@ -351,7 +353,7 @@ export class UmbWorkspaceSplitViewVariantSelectorElement<
|
||||
${this.#isExpanded(variantId)
|
||||
? html`
|
||||
<ul class="children-area">
|
||||
${this.#getSegmentVariantOptionsForCulture(variantId).map((option) =>
|
||||
${this.#getSegmentVariantOptionsForCulture(variantOption, variantId).map((option) =>
|
||||
this.#renderSegmentVariantOption(option),
|
||||
)}
|
||||
</ul>
|
||||
@@ -361,6 +363,16 @@ export class UmbWorkspaceSplitViewVariantSelectorElement<
|
||||
`;
|
||||
}
|
||||
|
||||
#renderExpandToggle(variantOption: VariantOptionModelType, variantId: UmbVariantId) {
|
||||
if (!variantOption.variant?.state) return nothing;
|
||||
|
||||
return html`
|
||||
<uui-button @click=${(event: PointerEvent) => this.#toggleExpansion(event, variantId)} compact>
|
||||
<uui-symbol-expand .open=${this.#isExpanded(variantId)}></uui-symbol-expand>
|
||||
</uui-button>
|
||||
`;
|
||||
}
|
||||
|
||||
#renderSegmentVariantOption(variantOption: VariantOptionModelType) {
|
||||
const variantId = UmbVariantId.Create(variantOption);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user