From a22e6ad96d0ae464dfb36dcb8269ae7ee2066e45 Mon Sep 17 00:00:00 2001 From: "Ronald A. Richardson" Date: Sun, 21 Dec 2025 17:49:00 +0800 Subject: [PATCH] feat: Enable lazy engine components for header menu icons --- addon/components/layout/header.hbs | 2 +- addon/components/layout/header/dropdown/item.hbs | 4 ++-- addon/components/layout/header/dropdown/item.js | 3 +++ package.json | 2 +- 4 files changed, 7 insertions(+), 4 deletions(-) diff --git a/addon/components/layout/header.hbs b/addon/components/layout/header.hbs index bc22f8ed..0642102c 100644 --- a/addon/components/layout/header.hbs +++ b/addon/components/layout/header.hbs @@ -17,7 +17,7 @@ >
{{#if menuItem.iconComponent}} - {{component menuItem.iconComponent options=menuItem.iconComponentOptions}} + {{component (lazy-engine-component menuItem.iconComponent) options=menuItem.iconComponentOptions}} {{else}} {{/if}} diff --git a/addon/components/layout/header/dropdown/item.hbs b/addon/components/layout/header/dropdown/item.hbs index 43208dca..a6f0b35c 100644 --- a/addon/components/layout/header/dropdown/item.hbs +++ b/addon/components/layout/header/dropdown/item.hbs @@ -19,7 +19,7 @@
{{#if line.component}} {{component - line.component + (lazy-engine-component line.component) item=line text=line.text label=(or line.label line.text) @@ -108,5 +108,5 @@ {{/if}} {{#if this.isComponent}} - {{component @item.component @item}} + {{component (lazy-engine-component @item.component) @item}} {{/if}} \ No newline at end of file diff --git a/addon/components/layout/header/dropdown/item.js b/addon/components/layout/header/dropdown/item.js index b6990e71..75fa0977 100644 --- a/addon/components/layout/header/dropdown/item.js +++ b/addon/components/layout/header/dropdown/item.js @@ -3,6 +3,7 @@ import { inject as service } from '@ember/service'; import { computed, action } from '@ember/object'; import { isBlank } from '@ember/utils'; import { bool } from '@ember/object/computed'; +import { ExtensionComponent } from '@fleetbase/ember-core/contracts'; import isMenuItemActive from '../../../../utils/is-menu-item-active'; import isEmptyObject from '../../../../utils/is-empty-object'; @@ -20,6 +21,8 @@ export default class LayoutHeaderDropdownItemComponent extends Component { } @computed('args.item.{component,onClick}') get isComponent() { + if (this.args.item.component instanceof ExtensionComponent) return true; + return this.args.item && typeof this.args.item.component === 'string' && typeof this.args.item.onClick !== 'function'; } diff --git a/package.json b/package.json index 5d9b5a22..bd2236ce 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@fleetbase/ember-ui", - "version": "0.3.15", + "version": "0.3.16", "description": "Fleetbase UI provides all the interface components, helpers, services and utilities for building a Fleetbase extension into the Console.", "keywords": [ "fleetbase-ui",