diff --git a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/media-type.repository.ts b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/media-type.repository.ts index 5d9b6ee37e..042f709f42 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/media-type.repository.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/media/media-types/repository/media-type.repository.ts @@ -18,7 +18,7 @@ export class UmbMediaTypeRepository implements UmbTreeRepository { - this.#store = instance; + this.#detailStore = instance; }), new UmbContextConsumerController(this.#host, UMB_MEDIA_TYPE_TREE_STORE_CONTEXT_TOKEN, (instance) => { @@ -118,18 +118,18 @@ export class UmbMediaTypeRepository implements UmbTreeRepository - implements UmbSaveableWorkspaceContextInterface + extends UmbWorkspaceContext + implements UmbSaveableWorkspaceContextInterface { - #data = new UmbObjectState(undefined); + #data = new UmbObjectState(undefined); data = this.#data.asObservable(); + #getDataPromise?: Promise; + name = this.#data.asObservablePart((data) => data?.name); + id = this.#data.asObservablePart((data) => data?.id); constructor(host: UmbControllerHostElement) { super(host, 'Umb.Workspace.MediaType', new UmbMediaTypeRepository(host)); @@ -38,10 +40,12 @@ export class UmbMediaTypeWorkspaceContext // TODO => Implement setPropertyValue } - async load(entityId: string) { - const { data } = await this.repository.requestDetails(entityId); + async load(id: string) { + this.#getDataPromise = this.repository.requestById(id); + const { data } = await this.#getDataPromise; if (data) { - this.#data.next(data); + this.setIsNew(false); + this.#data.update(data); } } @@ -63,8 +67,10 @@ export class UmbMediaTypeWorkspaceContext } } - -export const UMB_MEDIA_TYPE_WORKSPACE_CONTEXT = new UmbContextToken( +export const UMB_MEDIA_TYPE_WORKSPACE_CONTEXT = new UmbContextToken< + UmbSaveableWorkspaceContextInterface, + UmbMediaTypeWorkspaceContext +>( 'UmbWorkspaceContext', - (context): context is UmbMediaTypeWorkspaceContext => context.getEntityType?.() === 'media-type' + (context): context is UmbMediaTypeWorkspaceContext => context.getEntityType?.() === 'media-type', );