diff --git a/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/workspace/template-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/workspace/template-workspace.context.ts index 6fa17d5f8c..16886f30de 100644 --- a/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/workspace/template-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/backoffice/templating/templates/workspace/template-workspace.context.ts @@ -1,24 +1,17 @@ import { UmbTemplateRepository } from '../repository/template.repository'; +import { UmbWorkspaceContext } from '../../../shared/components/workspace/workspace-context/workspace-context'; import { createObservablePart, DeepState } from '@umbraco-cms/observable-api'; import { TemplateModel } from '@umbraco-cms/backend-api'; import { UmbControllerHostInterface } from '@umbraco-cms/controller'; -import { UmbContextProviderController } from '@umbraco-cms/context-api'; - -export class UmbTemplateWorkspaceContext { - #host: UmbControllerHostInterface; - #templateRepo: UmbTemplateRepository; +export class UmbTemplateWorkspaceContext extends UmbWorkspaceContext { #data = new DeepState(undefined); data = this.#data.asObservable(); name = createObservablePart(this.#data, (data) => data?.name); content = createObservablePart(this.#data, (data) => data?.content); - isNew = false; - constructor(host: UmbControllerHostInterface) { - this.#host = host; - this.#templateRepo = new UmbTemplateRepository(this.#host); - new UmbContextProviderController(this.#host, 'umbWorkspaceContext', this); + super(host, new UmbTemplateRepository(host)); } getData() { @@ -34,16 +27,17 @@ export class UmbTemplateWorkspaceContext { } async load(entityKey: string) { - const { data } = await this.#templateRepo.requestByKey(entityKey); + const { data } = await this.repository.requestByKey(entityKey); if (data) { + this.setIsNew(false); this.#data.next(data); } } async createScaffold(parentKey: string | null) { - this.isNew = true; - const { data } = await this.#templateRepo.createScaffold(parentKey); + const { data } = await this.repository.createScaffold(parentKey); if (!data) return; + this.setIsNew(true); this.#data.next(data); } }