import { EXAMPLE_COUNTER_CONTEXT } from './counter-workspace-context.js'; import { UmbTextStyles } from '@umbraco-cms/backoffice/style'; import { css, html, customElement, state, LitElement } from '@umbraco-cms/backoffice/external/lit'; import { UmbElementMixin } from '@umbraco-cms/backoffice/element-api'; @customElement('example-counter-workspace-view') export class ExampleCounterWorkspaceViewElement extends UmbElementMixin(LitElement) { #counterContext?: typeof EXAMPLE_COUNTER_CONTEXT.TYPE; @state() private count = 0; constructor() { super(); this.consumeContext(EXAMPLE_COUNTER_CONTEXT, (instance) => { this.#counterContext = instance; this.#observeCounter(); }); } #observeCounter(): void { if (!this.#counterContext) return; this.observe(this.#counterContext.counter, (count) => { this.count = count; }); } override render() { return html`

Counter Example

Current count value: ${this.count}

This is a Workspace View, that consumes the Counter Context, and displays the current count.

`; } static override styles = [ UmbTextStyles, css` :host { display: block; padding: var(--uui-size-layout-1); } `, ]; } export default ExampleCounterWorkspaceViewElement; declare global { interface HTMLElementTagNameMap { 'example-counter-workspace-view': ExampleCounterWorkspaceViewElement; } }