1- import React , { useEffect } from 'react' ;
1+ import React , { lazy , useEffect } from 'react' ;
22import { NavLink , Route , RouteComponentProps , Switch } from 'react-router-dom' ;
33import NavigationBar from '@/components/NavigationBar' ;
44import ServerConsole from '@/components/server/ServerConsole' ;
@@ -10,7 +10,11 @@ import { Provider } from 'react-redux';
1010import DatabasesContainer from '@/components/server/databases/DatabasesContainer' ;
1111import FileManagerContainer from '@/components/server/files/FileManagerContainer' ;
1212import { CSSTransition } from 'react-transition-group' ;
13- import FileEditContainer from '@/components/server/files/FileEditContainer' ;
13+ import SuspenseSpinner from '@/components/elements/SuspenseSpinner' ;
14+
15+ const LazyFileEditContainer = lazy < React . ComponentType < RouteComponentProps < any > > > (
16+ ( ) => import ( '@/components/server/files/FileEditContainer' )
17+ ) ;
1418
1519const ServerRouter = ( { match, location } : RouteComponentProps < { id : string } > ) => {
1620 const server = ServerContext . useStoreState ( state => state . server . data ) ;
@@ -51,7 +55,15 @@ const ServerRouter = ({ match, location }: RouteComponentProps<{ id: string }>)
5155 < Switch location = { location } >
5256 < Route path = { `${ match . path } ` } component = { ServerConsole } exact />
5357 < Route path = { `${ match . path } /files` } component = { FileManagerContainer } exact />
54- < Route path = { `${ match . path } /files/edit` } component = { FileEditContainer } exact />
58+ < Route
59+ path = { `${ match . path } /files/edit` }
60+ render = { props => (
61+ < SuspenseSpinner >
62+ < LazyFileEditContainer { ...props } />
63+ </ SuspenseSpinner >
64+ ) }
65+ exact
66+ />
5567 < Route path = { `${ match . path } /databases` } component = { DatabasesContainer } />
5668 </ Switch >
5769 </ React . Fragment >
0 commit comments