From 42304ef63e02aa95794c626378d22ef95da701a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Thu, 29 Jun 2023 14:56:05 +0200 Subject: [PATCH] asObservablePart --- .../src/libs/observable-api/array-state.test.ts | 10 +++++----- .../src/libs/observable-api/deep-state.test.ts | 2 +- .../src/libs/observable-api/deep-state.ts | 2 +- .../src/libs/observable-api/object-state.test.ts | 2 +- .../src/packages/core/store/entity-tree-store.ts | 6 +++--- .../core/store/file-system-tree.store.ts | 6 +++--- .../workspace-property.context.ts | 10 +++++----- .../workspace-split-view-manager.class.ts | 2 +- .../workspace-variant.context.ts | 6 +++--- .../document-blueprint.detail.store.ts | 2 +- .../repository/document-type.store.ts | 2 +- .../documents/repository/document.store.ts | 2 +- .../workspace/document-workspace.context.ts | 16 ++++++++-------- .../workspace/media-type-workspace.context.ts | 2 +- .../media/media/repository/media.store.ts | 2 +- .../media/workspace/media-workspace.context.ts | 2 +- .../repository/member-group.store.ts | 2 +- .../workspace/member-group-workspace.context.ts | 2 +- .../member-types/repository/member-type.store.ts | 2 +- .../workspace/member-type-workspace.context.ts | 2 +- .../repository/data-type-item.store.ts | 2 +- .../data-types/repository/data-type.store.ts | 4 ++-- .../workspace/data-type-workspace.context.ts | 4 ++-- .../languages/repository/language-item.store.ts | 2 +- .../languages/repository/language.store.ts | 2 +- .../repository/relation-type.store.ts | 2 +- .../workspace/relation-type-workspace.context.ts | 4 ++-- .../src/packages/tags/repository/tag.store.ts | 6 +++--- .../templates/repository/template-item.store.ts | 2 +- .../templates/repository/template.store.ts | 4 ++-- .../dictionary/repository/dictionary.store.ts | 2 +- .../workspace/dictionary-workspace.context.ts | 4 ++-- .../current-user/current-user-history.store.ts | 2 +- .../repository/user-group-item.store.ts | 2 +- .../user-groups/repository/user-group.store.ts | 2 +- .../users/users/repository/user-item.store.ts | 2 +- .../users/users/repository/user.store.ts | 2 +- .../storybook/stories/store.mdx | 10 +++++----- 38 files changed, 70 insertions(+), 70 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/array-state.test.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/array-state.test.ts index 13b92796c4..3ba6d8a923 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/array-state.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/array-state.test.ts @@ -83,7 +83,7 @@ describe('ArrayState', () => { }); it('getObservablePart for a specific entry of array', (done) => { - const subObserver = subject.getObservablePart((data) => data.find((x) => x.key === '2')); + const subObserver = subject.asObservablePart((data) => data.find((x) => x.key === '2')); subObserver.subscribe((entry) => { if (entry) { expect(entry.another).to.be.equal(initialData[1].another); @@ -96,7 +96,7 @@ describe('ArrayState', () => { let amountOfCallbacks = 0; const newItem = { key: '4', another: 'myValue4' }; - const subObserver = subject.getObservablePart((data) => data.find((x) => x.key === newItem.key)); + const subObserver = subject.asObservablePart((data) => data.find((x) => x.key === newItem.key)); subObserver.subscribe((entry) => { amountOfCallbacks++; if (amountOfCallbacks === 1) { @@ -132,7 +132,7 @@ describe('ArrayState', () => { const newItem = { key: '2', another: 'myValue4' }; subject.appendOne(newItem); - const subObserver = subject.getObservablePart((data) => data.find((x) => x.key === newItem.key)); + const subObserver = subject.asObservablePart((data) => data.find((x) => x.key === newItem.key)); subObserver.subscribe((entry) => { expect(entry).to.be.equal(newItem); // Second callback should give us the right data: if (entry) { @@ -145,7 +145,7 @@ describe('ArrayState', () => { it('getObservablePart replays existing data to any amount of subscribers.', (done) => { let amountOfCallbacks = 0; - const subObserver = subject.getObservablePart((data) => data.find((x) => x.key === '2')); + const subObserver = subject.asObservablePart((data) => data.find((x) => x.key === '2')); subObserver.subscribe((entry) => { if (entry) { amountOfCallbacks++; @@ -166,7 +166,7 @@ describe('ArrayState', () => { it('getObservablePart replays existing data to any amount of subscribers.', (done) => { let amountOfCallbacks = 0; - const subObserver = subject.getObservablePart((data) => data.find((x) => x.key === '2')); + const subObserver = subject.asObservablePart((data) => data.find((x) => x.key === '2')); subObserver.subscribe((entry) => { if (entry) { amountOfCallbacks++; diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.test.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.test.ts index 5930132097..8159e1c576 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.test.ts @@ -35,7 +35,7 @@ describe('UmbDeepState', () => { it('use gObservablePart, updates on its specific change.', (done) => { let amountOfCallbacks = 0; - const subObserver = subject.getObservablePart((data) => data.another); + const subObserver = subject.asObservablePart((data) => data.another); subObserver.subscribe((value) => { amountOfCallbacks++; if (amountOfCallbacks === 1) { diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.ts index ddc336675e..3da9fb69dc 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/deep-state.ts @@ -17,7 +17,7 @@ export class UmbDeepState extends BehaviorSubject { super(deepFreeze(initialData)); } - getObservablePart( + asObservablePart( mappingFunction: MappingFunction, memoizationFunction?: MemoizationFunction ) { diff --git a/src/Umbraco.Web.UI.Client/src/libs/observable-api/object-state.test.ts b/src/Umbraco.Web.UI.Client/src/libs/observable-api/object-state.test.ts index f5e39826ce..76dc7705dd 100644 --- a/src/Umbraco.Web.UI.Client/src/libs/observable-api/object-state.test.ts +++ b/src/Umbraco.Web.UI.Client/src/libs/observable-api/object-state.test.ts @@ -26,7 +26,7 @@ describe('UmbObjectState', () => { it('use getObservablePart, updates on its specific change.', (done) => { let amountOfCallbacks = 0; - const subObserver = subject.getObservablePart((data) => data.another); + const subObserver = subject.asObservablePart((data) => data.another); subObserver.subscribe((value) => { amountOfCallbacks++; if (amountOfCallbacks === 1) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-tree-store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-tree-store.ts index 681e9ec045..b758aeb297 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-tree-store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/entity-tree-store.ts @@ -22,7 +22,7 @@ export class UmbEntityTreeStore * An observable to observe the root items * @memberof UmbEntityTreeStore */ - rootItems = this._data.getObservablePart((items) => items.filter((item) => item.parentId === null)); + rootItems = this._data.asObservablePart((items) => items.filter((item) => item.parentId === null)); /** * Returns an observable to observe the children of a given parent @@ -31,7 +31,7 @@ export class UmbEntityTreeStore * @memberof UmbEntityTreeStore */ childrenOf(parentId: string | null) { - return this._data.getObservablePart((items) => items.filter((item) => item.parentId === parentId)); + return this._data.asObservablePart((items) => items.filter((item) => item.parentId === parentId)); } /** @@ -41,6 +41,6 @@ export class UmbEntityTreeStore * @memberof UmbEntityTreeStore */ items(ids: Array) { - return this._data.getObservablePart((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/core/store/file-system-tree.store.ts b/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-tree.store.ts index e06c6b12bc..c78093184d 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-tree.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/store/file-system-tree.store.ts @@ -22,7 +22,7 @@ export class UmbFileSystemTreeStore * An observable to observe the root items * @memberof UmbFileSystemTreeStore */ - rootItems = this._data.getObservablePart((items) => items.filter((item) => item.path?.includes('/') === false)); + rootItems = this._data.asObservablePart((items) => items.filter((item) => item.path?.includes('/') === false)); /** * Returns an observable to observe the children of a given parent @@ -31,7 +31,7 @@ export class UmbFileSystemTreeStore * @memberof UmbFileSystemTreeStore */ childrenOf(parentPath: string | null) { - return this._data.getObservablePart((items) => + return this._data.asObservablePart((items) => items.filter((item) => item.path?.startsWith(parentPath + '/') || parentPath === null) ); } @@ -43,6 +43,6 @@ export class UmbFileSystemTreeStore * @memberof UmbFileSystemTreeStore */ items(paths: Array) { - return this._data.getObservablePart((items) => items.filter((item) => paths.includes(item.path ?? ''))); + return this._data.asObservablePart((items) => items.filter((item) => paths.includes(item.path ?? ''))); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.context.ts index 871eb31e98..a8c3694207 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-property/workspace-property.context.ts @@ -25,11 +25,11 @@ export class UmbWorkspacePropertyContext { #data = new UmbObjectState>({}); - public readonly alias = this.#data.getObservablePart((data) => data.alias); - public readonly label = this.#data.getObservablePart((data) => data.label); - public readonly description = this.#data.getObservablePart((data) => data.description); - public readonly value = this.#data.getObservablePart((data) => data.value); - public readonly configValues = this.#data.getObservablePart((data) => data.config); + public readonly alias = this.#data.asObservablePart((data) => data.alias); + public readonly label = this.#data.asObservablePart((data) => data.label); + public readonly description = this.#data.asObservablePart((data) => data.description); + public readonly value = this.#data.asObservablePart((data) => data.value); + public readonly configValues = this.#data.asObservablePart((data) => data.config); #configCollection = new UmbClassState(undefined); public readonly config = this.#configCollection.asObservable(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view-manager.class.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view-manager.class.ts index f37b010f08..ea72ed04e8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view-manager.class.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-split-view-manager.class.ts @@ -46,7 +46,7 @@ export class UmbWorkspaceSplitViewManager { } public activeVariantByIndex(index: number) { - return this.#activeVariantsInfo.getObservablePart((data) => data[index] || undefined); + return this.#activeVariantsInfo.asObservablePart((data) => data[index] || undefined); } public switchVariant(index: number, variantId: UmbVariantId) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/workspace-variant.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/workspace-variant.context.ts index 58f3411c4d..07c2713d78 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/workspace-variant.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/workspace-variant/workspace-variant.context.ts @@ -32,9 +32,9 @@ export class UmbWorkspaceVariantContext { #currentVariant = new UmbObjectState(undefined); currentVariant = this.#currentVariant.asObservable(); - name = this.#currentVariant.getObservablePart((x) => x?.name); - culture = this.#currentVariant.getObservablePart((x) => x?.culture); - segment = this.#currentVariant.getObservablePart((x) => x?.segment); + name = this.#currentVariant.asObservablePart((x) => x?.name); + culture = this.#currentVariant.asObservablePart((x) => x?.culture); + segment = this.#currentVariant.asObservablePart((x) => x?.segment); #variantId = new UmbClassState(undefined); variantId = this.#variantId.asObservable(); diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts index fb07fd0d28..97f8eb0a96 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-blueprints/document-blueprint.detail.store.ts @@ -35,7 +35,7 @@ export class UmbDocumentBlueprintStore extends UmbStoreBase { this._data.append(data); }); - return this._data.getObservablePart((documents) => documents.find((document) => document.id === id)); + return this._data.asObservablePart((documents) => documents.find((document) => document.id === id)); } getScaffold(entityType: string, parentId: string | null) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/document-type.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/document-type.store.ts index e9cdeb8c6a..478934315a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/document-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/document-types/repository/document-type.store.ts @@ -39,7 +39,7 @@ export class UmbDocumentTypeStore extends UmbStoreBase { * @memberof UmbDocumentTypeStore */ byId(id: DocumentTypeResponseModel['id']) { - return this._data.getObservablePart((x) => x.find((y) => y.id === id)); + return this._data.asObservablePart((x) => x.find((y) => y.id === id)); } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts index b93d538e93..33729babb1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/repository/document.store.ts @@ -35,7 +35,7 @@ export class UmbDocumentStore extends UmbStoreBase { * @memberof UmbDocumentStore */ byId(id: DocumentResponseModel['id']) { - return this._data.getObservablePart((x) => x.find((y) => y.id === id)); + return this._data.asObservablePart((x) => x.find((y) => y.id === id)); } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts index 6f4bb4830c..cf1096d0e1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/workspace/document-workspace.context.ts @@ -35,12 +35,12 @@ export class UmbDocumentWorkspaceContext * The document is the current state/draft version of the document. */ #draft = new UmbObjectState(undefined); - readonly unique = this.#draft.getObservablePart((data) => data?.id); - readonly documentTypeKey = this.#draft.getObservablePart((data) => data?.contentTypeId); + readonly unique = this.#draft.asObservablePart((data) => data?.id); + readonly documentTypeKey = this.#draft.asObservablePart((data) => data?.contentTypeId); - readonly variants = this.#draft.getObservablePart((data) => data?.variants || []); - readonly urls = this.#draft.getObservablePart((data) => data?.urls || []); - readonly templateId = this.#draft.getObservablePart((data) => data?.templateId || null); + readonly variants = this.#draft.asObservablePart((data) => data?.variants || []); + readonly urls = this.#draft.asObservablePart((data) => data?.urls || []); + readonly templateId = this.#draft.asObservablePart((data) => data?.templateId || null); readonly structure; readonly splitView; @@ -125,18 +125,18 @@ export class UmbDocumentWorkspaceContext } propertyValuesOf(variantId?: UmbVariantId) { - return this.#draft.getObservablePart((data) => + return this.#draft.asObservablePart((data) => variantId ? data?.values?.filter((x) => variantId.compare(x)) : data?.values ); } propertyDataByAlias(propertyAlias: string, variantId?: UmbVariantId) { - return this.#draft.getObservablePart((data) => + return this.#draft.asObservablePart((data) => data?.values?.find((x) => x?.alias === propertyAlias && (variantId ? variantId.compare(x) : true)) ); } propertyValueByAlias(propertyAlias: string, variantId?: UmbVariantId) { - return this.#draft.getObservablePart( + return this.#draft.asObservablePart( (data) => data?.values?.find((x) => x?.alias === propertyAlias && (variantId ? variantId.compare(x) : true))?.value ); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts index 33661d96f1..5f1e3c06a7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/workspace/media-type-workspace.context.ts @@ -11,7 +11,7 @@ export class UmbWorkspaceMediaTypeContext { #data = new UmbObjectState(undefined); data = this.#data.asObservable(); - name = this.#data.getObservablePart((data) => data?.name); + name = this.#data.asObservablePart((data) => data?.name); constructor(host: UmbControllerHostElement) { super(host, new UmbMediaTypeRepository(host)); diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts index 81dcac4e15..ddd6f32818 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/repository/media.store.ts @@ -35,7 +35,7 @@ export class UmbMediaStore extends UmbStoreBase { * @memberof UmbMediaStore */ byId(id: MediaDetails['id']) { - return this._data.getObservablePart((x) => x.find((y) => y.id === id)); + return this._data.asObservablePart((x) => x.find((y) => y.id === id)); } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts index 4af12c43e9..14d3443bb4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media/workspace/media-workspace.context.ts @@ -11,7 +11,7 @@ export class UmbMediaWorkspaceContext { #data = new UmbObjectState(undefined); data = this.#data.asObservable(); - name = this.#data.getObservablePart((data) => data?.name); + name = this.#data.asObservablePart((data) => data?.name); constructor(host: UmbControllerHostElement) { super(host, new UmbMediaRepository(host)); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/member-group.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/member-group.store.ts index c18689b8e3..f2a4ab5215 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/member-group.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/repository/member-group.store.ts @@ -31,7 +31,7 @@ export class UmbMemberGroupStore extends UmbStoreBase { * @memberof UmbMemberGroupStore */ byId(id: MemberGroupDetails['id']) { - return this._data.getObservablePart((x) => x.find((y) => y.id === id)); + return this._data.asObservablePart((x) => x.find((y) => y.id === id)); } remove(uniques: string[]) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.context.ts index a694307280..05db9e50bc 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-groups/workspace/member-group-workspace.context.ts @@ -11,7 +11,7 @@ export class UmbWorkspaceMemberGroupContext { #data = new UmbObjectState(undefined); data = this.#data.asObservable(); - name = this.#data.getObservablePart((data) => data?.name); + name = this.#data.asObservablePart((data) => data?.name); constructor(host: UmbControllerHostElement) { super(host, new UmbMemberGroupRepository(host)); diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.store.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.store.ts index ff8480118a..c53e708d06 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/repository/member-type.store.ts @@ -25,7 +25,7 @@ export class UmbMemberTypeStore extends UmbStoreBase { * @memberof UmbMemberTypeStore */ byId(id: MemberTypeDetails['id']) { - return this._data.getObservablePart((x) => x.find((y) => y.id === id)); + return this._data.asObservablePart((x) => x.find((y) => y.id === id)); } remove(uniques: string[]) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts index 6b9eb90b08..91db4daca0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-types/workspace/member-type-workspace.context.ts @@ -11,7 +11,7 @@ export class UmbMemberTypeWorkspaceContext implements UmbEntityWorkspaceContextInterface { #data = new UmbObjectState(undefined); - name = this.#data.getObservablePart((data) => data?.name); + name = this.#data.asObservablePart((data) => data?.name); constructor(host: UmbControllerHostElement) { super(host, new UmbMemberTypeRepository(host)); diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type-item.store.ts index 28324d8b99..80784cfef4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type-item.store.ts @@ -29,7 +29,7 @@ export class UmbDataTypeItemStore } items(ids: Array) { - return this._data.getObservablePart((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/settings/data-types/repository/data-type.store.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type.store.ts index fb7fb3249e..ecf70e9d9a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/repository/data-type.store.ts @@ -41,7 +41,7 @@ export class UmbDataTypeStore extends UmbStoreBase { * @memberof UmbDataTypeStore */ byId(id: DataTypeResponseModel['id']) { - return this._data.getObservablePart((x) => x.find((y) => y.id === id)); + return this._data.asObservablePart((x) => x.find((y) => y.id === id)); } /** @@ -55,7 +55,7 @@ export class UmbDataTypeStore extends UmbStoreBase { withPropertyEditorUiAlias(propertyEditorUiAlias: string) { // TODO: Use a model for the data-type tree items: ^^Most likely it should be parsed to the UmbEntityTreeStore as a generic type. - return this._data.getObservablePart((items) => + return this._data.asObservablePart((items) => items.filter((item) => (item as any).propertyEditorUiAlias === propertyEditorUiAlias) ); } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.context.ts index 8c00f1b1f4..28b7f5dfe6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/data-types/workspace/data-type-workspace.context.ts @@ -12,8 +12,8 @@ export class UmbDataTypeWorkspaceContext #data = new UmbObjectState(undefined); data = this.#data.asObservable(); - name = this.#data.getObservablePart((data) => data?.name); - id = this.#data.getObservablePart((data) => data?.id); + name = this.#data.asObservablePart((data) => data?.name); + id = this.#data.asObservablePart((data) => data?.id); constructor(host: UmbControllerHostElement) { super(host, new UmbDataTypeRepository(host)); diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts index 018a5268c6..2a32378754 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language-item.store.ts @@ -26,6 +26,6 @@ export class UmbLanguageItemStore } items(isoCodes: Array) { - return this._data.getObservablePart((items) => items.filter((item) => isoCodes.includes(item.isoCode ?? ''))); + return this._data.asObservablePart((items) => items.filter((item) => isoCodes.includes(item.isoCode ?? ''))); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.store.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.store.ts index feb4187366..95264b06e6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/languages/repository/language.store.ts @@ -33,6 +33,6 @@ export class UmbLanguageStore extends UmbStoreBase { // TODO: how do we best handle this? They might have a smaller data set than the details items(isoCodes: Array) { - return this._data.getObservablePart((items) => items.filter((item) => isoCodes.includes(item.isoCode ?? ''))); + return this._data.asObservablePart((items) => items.filter((item) => isoCodes.includes(item.isoCode ?? ''))); } } diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/relation-type.store.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/relation-type.store.ts index 7a5e6b8eb7..c0a4f452c4 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/relation-type.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/repository/relation-type.store.ts @@ -41,7 +41,7 @@ export class UmbRelationTypeStore extends UmbStoreBase { * @memberof UmbRelationTypeStore */ byId(id: RelationTypeResponseModel['id']) { - return this._data.getObservablePart((x) => x.find((y) => y.id === id)); + return this._data.asObservablePart((x) => x.find((y) => y.id === id)); } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.context.ts index 6c682db91b..a7272b835f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/settings/relation-types/workspace/relation-type-workspace.context.ts @@ -10,8 +10,8 @@ export class UmbRelationTypeWorkspaceContext { #data = new UmbObjectState(undefined); data = this.#data.asObservable(); - name = this.#data.getObservablePart((data) => data?.name); - id = this.#data.getObservablePart((data) => data?.id); + name = this.#data.asObservablePart((data) => data?.name); + id = this.#data.asObservablePart((data) => data?.id); constructor(host: UmbControllerHostElement) { super(host, new UmbRelationTypeRepository(host)); diff --git a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts index f3920fc3a8..ffb00a3848 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/tags/repository/tag.store.ts @@ -38,11 +38,11 @@ export class UmbTagStore extends UmbStoreBase { * @memberof UmbTagStore */ byId(id: TagResponseModel['id']) { - return this._data.getObservablePart((x) => x.find((y) => y.id === id)); + return this._data.asObservablePart((x) => x.find((y) => y.id === id)); } items(group: TagResponseModel['group'], culture: string) { - return this._data.getObservablePart((items) => + return this._data.asObservablePart((items) => items.filter((item) => item.group === group && item.culture === culture) ); } @@ -54,7 +54,7 @@ export class UmbTagStore extends UmbStoreBase { // If we already has picked lets say 4 of them, the list will only show 1 more, even though there is more remaining in the database. byQuery(group: TagResponseModel['group'], culture: string, query: string) { - return this._data.getObservablePart((items) => + return this._data.asObservablePart((items) => items.filter( (item) => item.group === group && 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 5eeac72c38..e894b943dc 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 @@ -29,7 +29,7 @@ export class UmbTemplateItemStore } items(ids: Array) { - return this._data.getObservablePart((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/templating/templates/repository/template.store.ts b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.store.ts index 1cca318c59..92d3ca1deb 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/templating/templates/repository/template.store.ts @@ -35,11 +35,11 @@ export class UmbTemplateStore extends UmbStoreBase { * @memberof UmbTemplateStore */ byId(id: TemplateResponseModel['id']) { - return this._data.getObservablePart((x) => x.find((y) => y.id === id)); + return this._data.asObservablePart((x) => x.find((y) => y.id === id)); } items(uniques: string[]) { - return this._data.getObservablePart((x) => x.filter((y) => uniques.includes(y.id))); + return this._data.asObservablePart((x) => x.filter((y) => uniques.includes(y.id))); } /** diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/repository/dictionary.store.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/repository/dictionary.store.ts index 63d39f847b..9bb616d6e0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/repository/dictionary.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/repository/dictionary.store.ts @@ -29,7 +29,7 @@ export class UmbDictionaryStore extends UmbStoreBase { * @memberof UmbDictionaryStore */ byId(id: DictionaryItemResponseModel['id']) { - return this._data.getObservablePart((x) => x.find((y) => y.id === id)); + return this._data.asObservablePart((x) => x.find((y) => y.id === id)); } remove(uniques: string[]) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.context.ts index 2fc1e23566..300d799a57 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/translation/dictionary/workspace/dictionary-workspace.context.ts @@ -11,8 +11,8 @@ export class UmbDictionaryWorkspaceContext #data = new UmbObjectState(undefined); data = this.#data.asObservable(); - name = this.#data.getObservablePart((data) => data?.name); - dictionary = this.#data.getObservablePart((data) => data); + name = this.#data.asObservablePart((data) => data?.name); + dictionary = this.#data.asObservablePart((data) => data); constructor(host: UmbControllerHostElement) { super(host, new UmbDictionaryRepository(host)); diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/current-user-history.store.ts b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/current-user-history.store.ts index 67e38f2f2c..e3416ea2ed 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/current-user/current-user-history.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/current-user/current-user-history.store.ts @@ -13,7 +13,7 @@ export type UmbCurrentUserHistoryItem = { export class UmbCurrentUserHistoryStore extends UmbStoreBase { public readonly history = this._data.asObservable(); - public readonly latestHistory = this._data.getObservablePart((historyItems) => historyItems.slice(-10)); + public readonly latestHistory = this._data.asObservablePart((historyItems) => historyItems.slice(-10)); constructor(host: UmbControllerHost) { super( diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group-item.store.ts index 26005a2283..248faf4873 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group-item.store.ts @@ -29,7 +29,7 @@ export class UmbUserGroupItemStore } items(ids: Array) { - return this._data.getObservablePart((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/users/user-groups/repository/user-group.store.ts b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group.store.ts index a1c7bc0e00..8fe2457412 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/user-groups/repository/user-group.store.ts @@ -58,7 +58,7 @@ export class UmbUserGroupStore extends UmbStoreBase implements UmbEntityDetailSt this.#groups.append([data]); }); - return this.#groups.getObservablePart((userGroups) => userGroups.find((userGroup) => userGroup.id === id)); + return this.#groups.asObservablePart((userGroups) => userGroups.find((userGroup) => userGroup.id === id)); } async save(userGroups: Array) { diff --git a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user-item.store.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user-item.store.ts index 188abe2ee5..16a563cdc0 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user-item.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user-item.store.ts @@ -29,7 +29,7 @@ export class UmbUserItemStore } items(ids: Array) { - return this._data.getObservablePart((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/users/users/repository/user.store.ts b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user.store.ts index 560caea6b0..600ba359c6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user.store.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/users/users/repository/user.store.ts @@ -34,7 +34,7 @@ export class UmbUserStore extends UmbStoreBase { * @memberof UmbUserStore */ byId(id: UserResponseModel['id']) { - return this._data.getObservablePart((x) => x.find((y) => y.id === id)); + return this._data.asObservablePart((x) => x.find((y) => y.id === id)); } /** diff --git a/src/Umbraco.Web.UI.Client/storybook/stories/store.mdx b/src/Umbraco.Web.UI.Client/storybook/stories/store.mdx index 9622967a0c..4bd0b9a686 100644 --- a/src/Umbraco.Web.UI.Client/storybook/stories/store.mdx +++ b/src/Umbraco.Web.UI.Client/storybook/stories/store.mdx @@ -4,8 +4,8 @@ import { Meta } from '@storybook/addon-docs'; # Store -A store is the link between a Resource and a data implementation. A store is mainly taken form as a Context, In other words we will have to Consume the Context(Store) to get the Store. -Generally a Store will be holding one or more RxJS Subjects, each Subject is made available for Subscription via a RxJS Observable. +A store is the link between a Resource and a Repository. A store is mainly taken form as a Context, In other words we will have to Consume the Context(Store) to get the Store. +Generally a Store will be holding one or more State Objects, each Subject is made available for Observation via a Observables. ### A Simple Store: @@ -75,7 +75,7 @@ class MyProductStore { }); // Return a Observable part, to listen for this specific product and the future changes of it. - return this.#data.getObservablePart((documents) => + return this.#data.asObservablePart((documents) => documents.find((document) => document.id === id) ); } @@ -121,8 +121,8 @@ class MyProductStore { #products = new UmbArrayState(>[]); public readonly products = this.#products.asObservable(); - public readonly amountOfProducts = this.#products.getObservablePart((products) => products.length); - public readonly topTenRatedProducts = this.#products.getObservablePart((products) => products.sort((a, b) => b.rating - a.rating).slice(0, 10)); + public readonly amountOfProducts = this.#products.asObservablePart((products) => products.length); + public readonly topTenRatedProducts = this.#products.asObservablePart((products) => products.sort((a, b) => b.rating - a.rating).slice(0, 10)); ... }