add type guard

This commit is contained in:
Jacob Overgaard
2023-04-12 11:22:39 +02:00
parent b7b8024a6a
commit c2e977d010

View File

@@ -4,7 +4,7 @@ import { customElement, property, state } from 'lit/decorators.js';
import { map } from 'rxjs';
import { repeat } from 'lit/directives/repeat.js';
import type { IRoute } from '@umbraco-cms/backoffice/router';
import type { IRoute, PageComponent } from '@umbraco-cms/backoffice/router';
import type { UmbRouterSlotInitEvent, UmbRouterSlotChangeEvent } from '@umbraco-cms/internal/router';
import { createExtensionElement, umbExtensionsRegistry } from '@umbraco-cms/backoffice/extensions-api';
import type {
@@ -120,6 +120,10 @@ export class UmbWorkspaceLayoutElement extends UmbLitElement {
);
}
private componentHasManifest(component: PageComponent): component is HTMLElement & { manifest: unknown } {
return component ? 'manifest' in component : false;
}
private _createRoutes() {
this._routes = [];
@@ -136,7 +140,7 @@ export class UmbWorkspaceLayoutElement extends UmbLitElement {
return createExtensionElement(view);
},
setup: (component, info) => {
if (component && 'manifest' in component) {
if (this.componentHasManifest(component)) {
component.manifest = view;
} else {
console.group(`[UmbWorkspaceLayout] Failed to setup component for route: ${info.match.route.path}`);