diff --git a/.changeset/thirty-lamps-notice.md b/.changeset/thirty-lamps-notice.md new file mode 100644 index 0000000000..64c202067c --- /dev/null +++ b/.changeset/thirty-lamps-notice.md @@ -0,0 +1,5 @@ +--- +"marko": patch +--- + +Allow registering/loading top level hydrated components _after_ the "load" event. Previously after the load event it was assumed all assets would have been loaded but this is not always accurate for assets loaded through interactions. diff --git a/packages/marko/src/node_modules/@internal/components-registry/index-browser.js b/packages/marko/src/node_modules/@internal/components-registry/index-browser.js index e832ce641a..38b455df62 100644 --- a/packages/marko/src/node_modules/@internal/components-registry/index-browser.js +++ b/packages/marko/src/node_modules/@internal/components-registry/index-browser.js @@ -53,18 +53,6 @@ function register(type, def) { function addPendingDef(def, type, meta, host, runtimeId) { if (!pendingDefs) { pendingDefs = {}; - - // eslint-disable-next-line no-constant-condition - if ("MARKO_DEBUG") { - document.addEventListener("load", function () { - var pendingComponentIds = Object.keys(pendingDefs); - if (pendingComponentIds.length) { - complain( - "Marko templates were never loaded for: " + pendingComponentIds - ); - } - }); - } } (pendingDefs[type] = pendingDefs[type] || []).push([ def, @@ -499,7 +487,6 @@ function initServerRendered(renderedComponents, host) { var typeName = meta.___types[componentDef[1]]; return registered[typeName] || - document.readyState === "complete" || req.e(typeName) ? tryHydrateComponent(componentDef, meta, host, runtimeId) : addPendingDef(componentDef, typeName, meta, host, runtimeId);