diff --git a/src/router/index.js b/src/router/index.js index 0d98f6698..be434e9d8 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -57,17 +57,20 @@ const routes = [ try { // If we already have our route, go to it. if (router.hasRoute(to.query.fmgPage)) { + // Since our route is already in scope, we can grab the component from it and call the arePagePrerequisitesValid function. - const component = router - .getRoutes() - .filter((x) => x.name === to.query.fmgPage)[0].components; + let component = router.getRoutes().filter((x) => x.name === to.query.fmgPage)[0].components; + + // If the component hasn't been loaded fully, load it before we check prerequisites. + if (component.default.methods === undefined) { + component = await component.default(); + } if (!arePagePrerequisitesValid(component)) { await GoToFunnelStartOn404(next); } - - return next({ name: to.query.fmgPage, query: to.query, params: to.params }); + return next({ name: to.query.fmgPage, query: to.query, params: to.params }); } // Get route info for the given url. Names will have a 1:1 relationship with names in the Cms. @@ -82,10 +85,7 @@ const routes = [ // Call the next components arePagePrerequisitesValid method before load. // If it returns false, use the 404 logic. - const nextComponent = await router - .getRoutes() - .filter((x) => x.name === routeData[0].name)[0] - .components.default(); + const nextComponent = await router.getRoutes().filter((x) => x.name === routeData[0].name)[0].components.default(); if (!arePagePrerequisitesValid(nextComponent)) { await GoToFunnelStartOn404(next);