From 5d97a230f3253c0efa09f9f73be72f201c94ebf9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jesper=20M=C3=B8ller=20Jensen?= <26099018+JesmoDev@users.noreply.github.com> Date: Wed, 3 May 2023 21:40:28 +1200 Subject: [PATCH] init rework of workspace context --- .../workspace/user-group-workspace.context.ts | 51 +++++++++---------- 1 file changed, 23 insertions(+), 28 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/workspace/user-group-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/workspace/user-group-workspace.context.ts index 92dad94830..aea68ddabd 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/workspace/user-group-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/users/user-groups/workspace/user-group-workspace.context.ts @@ -1,41 +1,36 @@ -import { UmbEntityWorkspaceManager } from '../../../shared/components/workspace/workspace-context/entity-manager-controller'; -import { UMB_USER_GROUP_STORE_CONTEXT_TOKEN } from '../repository/user-group.store'; import { UmbUserGroupRepository } from '../repository/user-group.repository'; -import type { UserGroupDetails } from '../types'; import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace'; import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller'; +import { UserGroupBaseModel } from '@umbraco-cms/backoffice/backend-api'; +import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api'; export class UmbUserGroupWorkspaceContext - extends UmbWorkspaceContext - implements UmbEntityWorkspaceContextInterface + extends UmbWorkspaceContext + implements UmbEntityWorkspaceContextInterface { - #manager = new UmbEntityWorkspaceManager( - this.host, - 'user-group', - UMB_USER_GROUP_STORE_CONTEXT_TOKEN - ); - - public readonly data = this.#manager.state.asObservable(); - public readonly name = this.#manager.state.getObservablePart((state) => state?.name); + #data = new UmbObjectState(undefined); + data = this.#data.asObservable(); + getEntityId(): string | undefined { + throw new Error('Method not implemented.'); + } + getEntityType(): string { + throw new Error('Method not implemented.'); + } + getData(): UserGroupBaseModel | undefined { + throw new Error('Method not implemented.'); + } + save(): Promise { + throw new Error('Method not implemented.'); + } + destroy(): void { + throw new Error('Method not implemented.'); + } constructor(host: UmbControllerHostElement) { super(host, new UmbUserGroupRepository(host)); } - setName(name: string) { - this.#manager.state.update({ name: name }); - } - getEntityType = this.#manager.getEntityType; - getUnique = this.#manager.getEntityKey; - getEntityId = this.#manager.getEntityKey; - getStore = this.#manager.getStore; - getData = this.#manager.getData as any; // TODO: fix type mismatch, but this will be done when we move to repositories. - load = this.#manager.load; - create = this.#manager.create; - save = this.#manager.save; - destroy = this.#manager.destroy; - - public setPropertyValue(alias: string, value: unknown) { - throw new Error('setPropertyValue is not implemented for UmbWorkspaceUserGroupContext'); + updateProperty(alias: Alias, value: UserGroupBaseModel[Alias]) { + this.#data.update({ [alias]: value }); } }