From 77cbf2217212cf5788a875c598f65fd9e4e04db1 Mon Sep 17 00:00:00 2001 From: Mads Rasmussen Date: Mon, 15 Jan 2024 15:19:22 +0100 Subject: [PATCH] extend entity item store --- .../packages/core/store/entity-item.store.ts | 4 ++-- .../item/document-type-item.store.ts | 14 +++----------- .../repository/document-item.store.ts | 14 +++----------- .../repository/item/media-type-item.store.ts | 17 ++++------------- .../media/media/repository/media-item.store.ts | 13 ++++--------- .../repository/template-item.store.ts | 14 +++----------- .../repository/user-group-item.store.ts | 18 ++++-------------- .../user/repository/item/user-item.store.ts | 13 ++++--------- 8 files changed, 27 insertions(+), 80 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts index 264c10ebb7..130c4a098d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-item.store.ts @@ -1,6 +1,6 @@ import { ItemResponseModelBaseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** @@ -21,6 +21,6 @@ export class UmbEntityItemStore extends Um } items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id))); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts index b8154ec27f..302f550c6a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/item/document-type-item.store.ts @@ -1,7 +1,7 @@ import { DocumentTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbEntityItemStore, UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** @@ -11,22 +11,14 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; * @description - Data Store for Document Type items */ -export class UmbDocumentTypeItemStore extends UmbStoreBase { +export class UmbDocumentTypeItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbDocumentTypeItemStore. * @param {UmbControllerHostElement} host * @memberof UmbDocumentTypeItemStore */ constructor(host: UmbControllerHostElement) { - super( - host, - UMB_DOCUMENT_TYPE_ITEM_STORE_CONTEXT.toString(), - new UmbArrayState([], (x) => x.id), - ); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_DOCUMENT_TYPE_ITEM_STORE_CONTEXT.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts index eb1f7a9572..d186d8edf3 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document-item.store.ts @@ -1,7 +1,7 @@ import { DocumentItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbEntityItemStore, UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** @@ -11,22 +11,14 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; * @description - Data Store for Document items */ -export class UmbDocumentItemStore extends UmbStoreBase { +export class UmbDocumentItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbDocumentItemStore. * @param {UmbControllerHostElement} host * @memberof UmbDocumentItemStore */ constructor(host: UmbControllerHostElement) { - super( - host, - UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN.toString(), - new UmbArrayState([], (x) => x.id), - ); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_DOCUMENT_ITEM_STORE_CONTEXT_TOKEN.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts index c0baeee168..34ffd86057 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/item/media-type-item.store.ts @@ -1,32 +1,23 @@ import { MediaTypeItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; /** * @export * @class UmbMediaTypeItemStore - * @extends {UmbStoreBase} + * @extends {UmbEntityItemStore} * @description - Data Store for Media Type items */ -export class UmbMediaTypeItemStore extends UmbStoreBase { +export class UmbMediaTypeItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbMediaTypeItemStore. * @param {UmbControllerHostElement} host * @memberof UmbMediaTypeItemStore */ constructor(host: UmbControllerHostElement) { - super( - host, - UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT.toString(), - new UmbArrayState([], (x) => x.id), - ); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_MEDIA_TYPE_ITEM_STORE_CONTEXT.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts index 9c18119c74..91e7ee347f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media-item.store.ts @@ -1,28 +1,23 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; import { MediaItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; /** * @export * @class UmbMediaItemStore - * @extends {UmbStoreBase} + * @extends {UmbEntityItemStore} * @description - Data Store for Media items */ -export class UmbMediaItemStore extends UmbStoreBase { +export class UmbMediaItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbMediaItemStore. * @param {UmbControllerHostElement} host * @memberof UmbMediaItemStore */ constructor(host: UmbControllerHostElement) { - super(host, UMB_MEDIA_ITEM_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.id)); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_MEDIA_ITEM_STORE_CONTEXT.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts index 260cad4dfa..1a167d099b 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template-item.store.ts @@ -1,7 +1,7 @@ import { TemplateItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; +import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; /** @@ -11,22 +11,14 @@ import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; * @description - Data Store for Template items */ -export class UmbTemplateItemStore extends UmbStoreBase { +export class UmbTemplateItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbTemplateItemStore. * @param {UmbControllerHostElement} host * @memberof UmbTemplateItemStore */ constructor(host: UmbControllerHostElement) { - super( - host, - UMB_TEMPLATE_ITEM_STORE_CONTEXT.toString(), - new UmbArrayState([], (x) => x.id), - ); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_TEMPLATE_ITEM_STORE_CONTEXT.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts index a91a199546..754573fab8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user-group/repository/user-group-item.store.ts @@ -1,33 +1,23 @@ import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; import type { UserGroupItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; /** * @export * @class UmbUserGroupItemStore - * @extends {UmbStoreBase} + * @extends {UmbEntityItemStore} * @description - Data Store for user group items */ -// TODO: add UmbItemStoreInterface when changed to uniques -export class UmbUserGroupItemStore extends UmbStoreBase { +export class UmbUserGroupItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbUserGroupItemStore. * @param {UmbControllerHostElement} host * @memberof UmbUserGroupItemStore */ constructor(host: UmbControllerHostElement) { - super( - host, - UMB_USER_GROUP_ITEM_STORE_CONTEXT_TOKEN.toString(), - new UmbArrayState([], (x) => x.id), - ); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_USER_GROUP_ITEM_STORE_CONTEXT_TOKEN.toString()); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts index 93c0daf2d3..8b8a1131eb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/user/user/repository/item/user-item.store.ts @@ -1,29 +1,24 @@ import type { UserItemResponseModel } from '@umbraco-cms/backoffice/backend-api'; import { UmbContextToken } from '@umbraco-cms/backoffice/context-api'; import type { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api'; -import { UmbItemStore, UmbStoreBase } from '@umbraco-cms/backoffice/store'; -import { UmbArrayState } from '@umbraco-cms/backoffice/observable-api'; +import { UmbEntityItemStore } from '@umbraco-cms/backoffice/store'; /** * @export * @class UmbUserItemStore - * @extends {UmbStoreBase} + * @extends {UmbEntityItemStore} * @description - Data Store for user items */ // TODO: add UmbItemStoreInterface when changed to uniques -export class UmbUserItemStore extends UmbStoreBase { +export class UmbUserItemStore extends UmbEntityItemStore { /** * Creates an instance of UmbUserItemStore. * @param {UmbControllerHostElement} host * @memberof UmbUserItemStore */ constructor(host: UmbControllerHostElement) { - super(host, UMB_USER_ITEM_STORE_CONTEXT.toString(), new UmbArrayState([], (x) => x.id)); - } - - items(ids: Array) { - return this._data.asObservablePart((items) => items.filter((item) => ids.includes(item.id ?? ''))); + super(host, UMB_USER_ITEM_STORE_CONTEXT.toString()); } }