set active item

This commit is contained in:
Mads Rasmussen
2024-04-18 14:16:18 +02:00
parent 0d9de1e295
commit 7cd26cf5d5

View File

@@ -110,11 +110,6 @@ export class UmbCollectionViewBundleElement extends UmbLitElement {
#onClick(view: UmbCollectionViewLayout) { #onClick(view: UmbCollectionViewLayout) {
this.#collectionContext?.setLastSelectedView(this._entityUnique, view.alias); this.#collectionContext?.setLastSelectedView(this._entityUnique, view.alias);
// TODO: This ignorer is just neede for JSON SCHEMA TO WORK, As its not updated with latest TS jet.
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
// @ts-ignore
this._popover?.hidePopover();
} }
render() { render() {
@@ -123,7 +118,7 @@ export class UmbCollectionViewBundleElement extends UmbLitElement {
return html` return html`
<uui-button compact popovertarget="collection-view-bundle-popover" label="status"> <uui-button compact popovertarget="collection-view-bundle-popover" label="status">
${this.#renderItemDisplay(this._currentView)} <umb-icon name=${this._currentView.icon}></umb-icon>
</uui-button> </uui-button>
<uui-popover-container id="collection-view-bundle-popover" placement="bottom-end"> <uui-popover-container id="collection-view-bundle-popover" placement="bottom-end">
<umb-popover-layout> <umb-popover-layout>
@@ -141,31 +136,27 @@ export class UmbCollectionViewBundleElement extends UmbLitElement {
#renderItem(view: UmbCollectionViewLayout) { #renderItem(view: UmbCollectionViewLayout) {
return html` return html`
<uui-button compact href="${this._collectionRootPathName}/${view.pathName}" @click=${() => this.#onClick(view)}> <uui-menu-item
${this.#renderItemDisplay(view)} label=${view.label}
<span class="label">${view.label}</span> href="${this._collectionRootPathName}/${view.pathName}"
</uui-button> @click-label=${() => this.#onClick(view)}
?active=${view.alias === this._currentView?.alias}>
<umb-icon slot="icon" name=${view.icon}></umb-icon>
</uui-menu-item>
`; `;
} }
#renderItemDisplay(view: UmbCollectionViewLayout) {
return html`<umb-icon name=${view.icon}></umb-icon>`;
}
static styles = [ static styles = [
UmbTextStyles, UmbTextStyles,
css` css`
:host { :host {
--uui-button-content-align: left; --uui-button-content-align: left;
} }
.label {
margin-left: var(--uui-size-space-1);
}
.filter-dropdown { .filter-dropdown {
display: flex; padding: var(--uui-size-space-3);
gap: var(--uui-size-space-1);
flex-direction: column;
} }
umb-icon { umb-icon {
display: inline-block; display: inline-block;
} }