diff --git a/packages/core/src/dom_components/model/Components.ts b/packages/core/src/dom_components/model/Components.ts index 11a158275..26b609155 100644 --- a/packages/core/src/dom_components/model/Components.ts +++ b/packages/core/src/dom_components/model/Components.ts @@ -63,15 +63,20 @@ const getComponentsFromDefs = ( } } + // Here `result` might be a Component + const cmp = isFunction(result.components) ? (result as unknown as Component) : null; + if (components) { const newComponents = getComponentsFromDefs(components, all, opts); - if (isFunction(result.components)) { - const cmps = result.components(); - cmps.length > 0 && cmps.reset(newComponents, opts); + if (cmp) { + cmp.components().reset(newComponents, opts); } else { result.components = newComponents; } + } else if (cmp) { + // The component already exists but the parsed one is without components + cmp.components().reset([], opts); } return result;