1- import React , { useMemo , Suspense } from 'react' ;
1+ import { Suspense , useMemo } from 'react' ;
22import { Route } from 'react-router-dom' ;
33import PropTypes from 'prop-types' ;
44
@@ -12,7 +12,6 @@ import { invokeEventHandlers } from './handlerService';
1212import { packageName } from './constants' ;
1313import { ModuleHierarchyProvider } from './components' ;
1414import events from './events' ;
15- import loadRemoteComponent from './loadRemoteComponent' ;
1615
1716// Process and cache "app" type modules and render the routes
1817const AppRoutes = ( { modules, stripes } ) => {
@@ -24,13 +23,11 @@ const AppRoutes = ({ modules, stripes }) => {
2423 const perm = `module.${ name } .enabled` ;
2524 if ( ! stripes . hasPerm ( perm ) ) return null ;
2625
27- const RemoteComponent = React . lazy ( ( ) => loadRemoteComponent ( module . url , module . name ) ) ;
2826 const connect = connectFor ( module . module , stripes . epics , stripes . logger ) ;
2927
3028 let ModuleComponent ;
31-
3229 try {
33- ModuleComponent = connect ( RemoteComponent ) ;
30+ ModuleComponent = connect ( module . getModule ( ) ) ;
3431 } catch ( error ) {
3532 console . error ( error ) ; // eslint-disable-line
3633 throw Error ( error ) ;
@@ -51,41 +48,39 @@ const AppRoutes = ({ modules, stripes }) => {
5148 } , [ modules . app , stripes ] ) ;
5249
5350 return cachedModules . map ( ( { ModuleComponent, connect, module, name, moduleStripes, stripes : propsStripes , displayName } ) => (
54- < Suspense fallback = { < LoadingView /> } >
55- < Route
56- path = { module . route }
57- key = { module . route }
58- render = { props => {
59- const data = { displayName, name } ;
51+ < Route
52+ path = { module . route }
53+ key = { module . route }
54+ render = { props => {
55+ const data = { displayName, name } ;
6056
61- // allow SELECT_MODULE handlers to intervene
62- const handlerComponents = invokeEventHandlers ( events . SELECT_MODULE , moduleStripes , modules . handler , data ) ;
63- if ( handlerComponents . length ) {
64- return handlerComponents . map ( Handler => ( < Handler stripes = { propsStripes } data = { data } /> ) ) ;
65- }
57+ // allow SELECT_MODULE handlers to intervene
58+ const handlerComponents = invokeEventHandlers ( events . SELECT_MODULE , moduleStripes , modules . handler , data ) ;
59+ if ( handlerComponents . length ) {
60+ return handlerComponents . map ( Handler => ( < Handler stripes = { propsStripes } data = { data } /> ) ) ;
61+ }
6662
67- return (
68- < StripesContext . Provider value = { moduleStripes } >
69- < ModuleHierarchyProvider module = { module . module } >
70- < div id = { `${ name } -module-display` } data-module = { module . module } data-version = { module . version } >
71- < RouteErrorBoundary
72- escapeRoute = { module . home ?? module . route }
73- moduleName = { displayName }
74- stripes = { moduleStripes }
75- >
76- < TitleManager page = { displayName } >
77- < Suspense fallback = { < LoadingView /> } >
78- < ModuleComponent { ...props } connect = { connect } stripes = { moduleStripes } actAs = "app" />
79- </ Suspense >
80- </ TitleManager >
81- </ RouteErrorBoundary >
82- </ div >
83- </ ModuleHierarchyProvider >
84- </ StripesContext . Provider >
85- ) ;
86- } }
87- />
88- </ Suspense >
63+ return (
64+ < StripesContext . Provider value = { moduleStripes } >
65+ < ModuleHierarchyProvider module = { module . module } >
66+ < div id = { `${ name } -module-display` } data-module = { module . module } data-version = { module . version } >
67+ < RouteErrorBoundary
68+ escapeRoute = { module . home ?? module . route }
69+ moduleName = { displayName }
70+ stripes = { moduleStripes }
71+ >
72+ < TitleManager page = { displayName } >
73+ < Suspense fallback = { < LoadingView /> } >
74+ < ModuleComponent { ...props } connect = { connect } stripes = { moduleStripes } actAs = "app" />
75+ </ Suspense >
76+ </ TitleManager >
77+ </ RouteErrorBoundary >
78+ </ div >
79+ </ ModuleHierarchyProvider >
80+ </ StripesContext . Provider >
81+ ) ;
82+ } }
83+ />
8984 ) ) ;
9085} ;
9186
0 commit comments