From 7052c3cc6e3861ebbd1f29e3c5becc30d7dd535e Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Fri, 16 Aug 2024 13:57:50 +0200 Subject: [PATCH] use selection manager in picker context --- .../member-picker-modal.element.ts | 28 ++++++++----------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/components/member-picker-modal/member-picker-modal.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/components/member-picker-modal/member-picker-modal.element.ts index aa5ca88067..74a00b4992 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/components/member-picker-modal/member-picker-modal.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/components/member-picker-modal/member-picker-modal.element.ts @@ -4,7 +4,6 @@ import type { UmbMemberItemModel } from '../../repository/index.js'; import type { UmbMemberPickerModalValue, UmbMemberPickerModalData } from './member-picker-modal.token.js'; import type { PropertyValueMap } from '@umbraco-cms/backoffice/external/lit'; import { customElement, html, repeat, state } from '@umbraco-cms/backoffice/external/lit'; -import { UmbSelectionManager } from '@umbraco-cms/backoffice/utils'; import { UmbModalBaseElement } from '@umbraco-cms/backoffice/modal'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { UmbCollectionItemPickerContext } from '@umbraco-cms/backoffice/collection'; @@ -18,21 +17,12 @@ export class UmbMemberPickerModalElement extends UmbModalBaseElement< private _members: Array = []; #collectionRepository = new UmbMemberCollectionRepository(this); - #selectionManager = new UmbSelectionManager(this); - #pickerContext = new UmbCollectionItemPickerContext(this); - override connectedCallback(): void { - super.connectedCallback(); - this.#selectionManager.setSelectable(true); - this.#selectionManager.setMultiple(this.data?.multiple ?? false); - this.#selectionManager.setSelection(this.value?.selection ?? []); - } - constructor() { super(); this.observe( - this.#selectionManager.selection, + this.#pickerContext.selection.selection, (selection) => { this.updateValue({ selection }); this.requestUpdate(); @@ -43,8 +33,14 @@ export class UmbMemberPickerModalElement extends UmbModalBaseElement< protected override async updated(_changedProperties: PropertyValueMap | Map) { super.updated(_changedProperties); - if (_changedProperties.has('data') && this.data) { - this.#pickerContext.setConfig(this.data); + + if (_changedProperties.has('data')) { + this.#pickerContext.search.updateConfig({ ...this.data?.search }); + this.#pickerContext.selection.setMultiple(this.data?.multiple ?? false); + } + + if (_changedProperties.has('value')) { + this.#pickerContext.selection.setSelection(this.value?.selection); } } @@ -89,9 +85,9 @@ export class UmbMemberPickerModalElement extends UmbModalBaseElement< this.#selectionManager.select(item.unique)} - @deselected=${() => this.#selectionManager.deselect(item.unique)} - ?selected=${this.#selectionManager.isSelected(item.unique)}> + @selected=${() => this.#pickerContext.selection.select(item.unique)} + @deselected=${() => this.#pickerContext.selection.deselect(item.unique)} + ?selected=${this.#pickerContext.selection.isSelected(item.unique)}> `;