extend workspace context base from template workspace
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user