comsume workspace in document type editor edit

This commit is contained in:
Mads Rasmussen
2023-03-16 21:31:30 +01:00
parent 5129127e25
commit f5a8849742
2 changed files with 16 additions and 13 deletions

View File

@@ -46,7 +46,7 @@ export class UmbDocumentTypeWorkspaceEditElement extends UmbLitElement {
name: 'umb:document-dashed-line',
};
private _workspaceContext: UmbWorkspaceDocumentTypeContext = new UmbWorkspaceDocumentTypeContext(this);
#workspaceContext?: UmbWorkspaceDocumentTypeContext;
@state()
private _documentType?: DocumentTypeResponseModel;
@@ -56,14 +56,19 @@ export class UmbDocumentTypeWorkspaceEditElement extends UmbLitElement {
constructor() {
super();
this.consumeContext<UmbWorkspaceDocumentTypeContext>('umbWorkspaceContext', (instance) => {
this.#workspaceContext = instance;
this.#observeDocumentType();
});
this.consumeContext(UMB_MODAL_CONTEXT_TOKEN, (instance) => {
this._modalContext = instance;
});
}
this.observe(this._workspaceContext.data, (data) => {
// TODO: make method to identify if data is of type DocumentType
this._documentType = data as DocumentType;
});
#observeDocumentType() {
if (!this.#workspaceContext) return;
this.observe(this.#workspaceContext.data, (data) => (this._documentType = data));
}
// TODO. find a way where we don't have to do this for all workspaces.
@@ -72,7 +77,7 @@ export class UmbDocumentTypeWorkspaceEditElement extends UmbLitElement {
const target = event.composedPath()[0] as UUIInputElement;
if (typeof target?.value === 'string') {
this._workspaceContext?.setName(target.value);
this.#workspaceContext?.setName(target.value);
}
}
}
@@ -81,7 +86,7 @@ export class UmbDocumentTypeWorkspaceEditElement extends UmbLitElement {
const modalHandler = this._modalContext?.open(UMB_ICON_PICKER_MODAL_TOKEN);
modalHandler?.onSubmit().then((saved) => {
if (saved.icon) this._workspaceContext?.setIcon(saved.icon);
if (saved.icon) this.#workspaceContext?.setIcon(saved.icon);
// TODO save color ALIAS as well
});
}

View File

@@ -1,19 +1,17 @@
import { UUITextStyles } from '@umbraco-ui/uui-css/lib';
import { html } from 'lit';
import { customElement, state } from 'lit/decorators.js';
import { IRoutingInfo } from '@umbraco-cms/router';
import { UmbWorkspaceDocumentTypeContext } from './document-type-workspace.context';
import { UmbDocumentTypeWorkspaceEditElement } from './document-type-workspace-edit.element';
import { IRoutingInfo } from '@umbraco-cms/router';
import { UmbLitElement } from '@umbraco-cms/element';
import './document-type-workspace-edit.element';
@customElement('umb-document-type-workspace')
export class UmbDocumentTypeWorkspaceElement extends UmbLitElement {
static styles = [UUITextStyles];
#workspaceContext: UmbWorkspaceDocumentTypeContext = new UmbWorkspaceDocumentTypeContext(this);
#element = document.createElement('umb-document-type-workspace-edit');
#workspaceContext = new UmbWorkspaceDocumentTypeContext(this);
#element = new UmbDocumentTypeWorkspaceEditElement();
@state()
_routes = [