media-type

This commit is contained in:
Niels Lyngsø
2023-08-24 10:50:00 +02:00
parent 910ef2a2e9
commit d1637f0a6b
3 changed files with 14 additions and 8 deletions

View File

@@ -1,19 +1,18 @@
import { UmbWorkspaceMediaTypeContext } from './media-type-workspace.context.js';
import { UMB_MEDIA_TYPE_WORKSPACE_CONTEXT } from './media-type-workspace.context.js';
import { UUITextStyles, UUIInputElement, UUIInputEvent } from '@umbraco-cms/backoffice/external/uui';
import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit';
import { UmbLitElement } from '@umbraco-cms/internal/lit-element';
import { UMB_WORKSPACE_CONTEXT } from '@umbraco-cms/backoffice/workspace';
@customElement('umb-media-type-workspace-editor')
export class UmbMediaTypeWorkspaceEditorElement extends UmbLitElement {
@state()
private _mediaTypeName?: string | null = '';
#workspaceContext?: UmbWorkspaceMediaTypeContext;
#workspaceContext?: typeof UMB_MEDIA_TYPE_WORKSPACE_CONTEXT.TYPE;
constructor() {
super();
this.consumeContext(UMB_WORKSPACE_CONTEXT, (instance) => {
this.#workspaceContext = instance as UmbWorkspaceMediaTypeContext;
this.consumeContext(UMB_MEDIA_TYPE_WORKSPACE_CONTEXT, (instance) => {
this.#workspaceContext = instance;
this.#observeName();
});
}

View File

@@ -3,9 +3,10 @@ import type { MediaTypeDetails } from '../types.js';
import { UmbEntityWorkspaceContextInterface, UmbWorkspaceContext } from '@umbraco-cms/backoffice/workspace';
import { UmbControllerHostElement } from '@umbraco-cms/backoffice/controller-api';
import { UmbObjectState } from '@umbraco-cms/backoffice/observable-api';
import { UmbContextToken } from '@umbraco-cms/backoffice/context-api';
type EntityType = MediaTypeDetails;
export class UmbWorkspaceMediaTypeContext
export class UmbMediaTypeWorkspaceContext
extends UmbWorkspaceContext<UmbMediaTypeRepository, EntityType>
implements UmbEntityWorkspaceContextInterface<EntityType | undefined>
{
@@ -61,3 +62,9 @@ export class UmbWorkspaceMediaTypeContext
this.#data.complete();
}
}
export const UMB_MEDIA_TYPE_WORKSPACE_CONTEXT = new UmbContextToken<UmbEntityWorkspaceContextInterface, UmbMediaTypeWorkspaceContext>(
'UmbWorkspaceContext',
(context): context is UmbMediaTypeWorkspaceContext => context.getEntityType?.() === 'media-type'
);

View File

@@ -1,4 +1,4 @@
import { UmbWorkspaceMediaTypeContext } from './media-type-workspace.context.js';
import { UmbMediaTypeWorkspaceContext } from './media-type-workspace.context.js';
import { UmbMediaTypeWorkspaceEditorElement } from './media-type-workspace-editor.element.js';
import { UUITextStyles } from '@umbraco-cms/backoffice/external/uui';
import { css, html, customElement, state } from '@umbraco-cms/backoffice/external/lit';
@@ -7,7 +7,7 @@ import type { UmbRoute } from '@umbraco-cms/backoffice/router';
@customElement('umb-media-type-workspace')
export class UmbMediaTypeWorkspaceElement extends UmbLitElement {
#workspaceContext = new UmbWorkspaceMediaTypeContext(this);
#workspaceContext = new UmbMediaTypeWorkspaceContext(this);
#element = new UmbMediaTypeWorkspaceEditorElement();
@state()