From 5f4bd89c3d2906fc2a2edbc27bd9e7761753219b Mon Sep 17 00:00:00 2001 From: JesmoDev <26099018+JesmoDev@users.noreply.github.com> Date: Thu, 14 Mar 2024 09:54:10 +0100 Subject: [PATCH] media type --- .../workspace/media-type-workspace.context.ts | 25 +++++++++++++------ 1 file changed, 18 insertions(+), 7 deletions(-) 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 374818b70e..118eba2c76 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 @@ -127,15 +127,26 @@ export class UmbMediaTypeWorkspaceContext return data; } - async load(entityId: string) { + async load(unique: string) { this.resetState(); - const { data } = await this.structure.loadType(entityId); - if (!data) return undefined; + const { data, asObservable } = await this.structure.loadType(unique); - this.setIsNew(false); - this.setIsSorting(false); - this.#persistedData.setValue(data); - return data; + if (data) { + this.setIsNew(false); + this.setIsSorting(false); + this.#persistedData.update(data); + } + + if (asObservable) { + this.observe(asObservable(), (entity) => this.#onStoreChange(entity), 'umbMediaTypeStoreObserver'); + } + } + + #onStoreChange(entity: EntityType | undefined) { + if (!entity) { + //TODO: This solution is alright for now. But reconsider when we introduce signal-r + history.pushState(null, '', 'section/settings/workspace/media-type-root'); + } } /**