extend workspace context base from template workspace

This commit is contained in:
Mads Rasmussen
2023-03-02 16:48:03 +01:00
parent 2a0065dddb
commit c9f3dc22d4

View File

@@ -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<UmbTemplateRepository> {
#data = new DeepState<TemplateModel | undefined>(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);
}
}