From 366aa0eb43fbfde9c6be2827cd9111d6778b5c44 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Thu, 15 Aug 2024 13:11:52 +0200 Subject: [PATCH] set search feature toggle --- .../manager/picker-modal-search.manager.ts | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/picker-modal/search/manager/picker-modal-search.manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/picker-modal/search/manager/picker-modal-search.manager.ts index 1212762ad9..621c5b302c 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/picker-modal/search/manager/picker-modal-search.manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/picker-modal/search/manager/picker-modal-search.manager.ts @@ -19,6 +19,9 @@ export class UmbPickerModalSearchManager< ResultItemType extends UmbEntityModel = UmbEntityModel, QueryType extends UmbSearchRequestArgs = UmbSearchRequestArgs, > extends UmbControllerBase { + #searchable = new UmbBooleanState(false); + public readonly searchable = this.#searchable.asObservable(); + #query = new UmbObjectState(undefined); public readonly query = this.#query.asObservable(); @@ -63,11 +66,30 @@ export class UmbPickerModalSearchManager< return this.#config; } + /** + * Returns whether items can be searched. + * @returns {boolean} Whether items can be searched. + * @memberof UmbPickerModalSearchManager + */ + public getSearchable(): boolean { + return this.#searchable.getValue(); + } + + /** + * Sets whether items can be searched. + * @param {boolean} value Whether items can be searched. + * @memberof UmbPickerModalSearchManager + */ + public setSearchable(value: boolean) { + this.#searchable.setValue(value); + } + /** * Search for items based on the current query. * @memberof UmbPickerModalSearchManager */ public search() { + if (this.getSearchable() === false) throw new Error('Search is not enabled'); this.#searching.setValue(true); this.#debouncedSearch(); } @@ -88,6 +110,7 @@ export class UmbPickerModalSearchManager< * @memberof UmbPickerModalSearchManager */ public setQuery(query: QueryType) { + if (this.getSearchable() === false) throw new Error('Search is not enabled'); if (!this.query) { this.clear(); return; @@ -115,6 +138,7 @@ export class UmbPickerModalSearchManager< #debouncedSearch = debounce(this.#search, 300); async #search() { + if (this.getSearchable() === false) throw new Error('Search is not enabled'); if (!this.#searchProvider) throw new Error('Search provider is not available'); const query = this.#query.getValue(); if (!query) throw new Error('No query provided');