From 192c9dcaf696ab97034e2c0894e04de5d1dfa210 Mon Sep 17 00:00:00 2001 From: restrry Date: Fri, 3 Apr 2020 09:45:30 +0200 Subject: [PATCH] ml async assets loading --- .../ml/public/application/management/index.ts | 10 +++------- .../application/management/jobs_list/index.ts | 16 ++++++++++++++-- 2 files changed, 17 insertions(+), 9 deletions(-) diff --git a/x-pack/plugins/ml/public/application/management/index.ts b/x-pack/plugins/ml/public/application/management/index.ts index 21e7e3400e8d10..385140771e08fc 100644 --- a/x-pack/plugins/ml/public/application/management/index.ts +++ b/x-pack/plugins/ml/public/application/management/index.ts @@ -21,9 +21,6 @@ import { LICENSE_CHECK_STATE } from '../../../../licensing/public'; import { PLUGIN_ID, PLUGIN_ICON } from '../../../common/constants/app'; import { MINIMUM_FULL_LICENSE } from '../../../common/license'; -import { getJobsListBreadcrumbs } from './breadcrumbs'; -import { renderApp } from './jobs_list'; - export function initManagementSection( pluginsSetup: MlSetupDependencies, core: CoreSetup @@ -47,10 +44,9 @@ export function initManagementSection( defaultMessage: 'Jobs list', }), order: 10, - async mount({ element, setBreadcrumbs }) { - const [coreStart] = await core.getStartServices(); - setBreadcrumbs(getJobsListBreadcrumbs()); - return renderApp(element, coreStart); + async mount(params) { + const { mountApp } = await import('./jobs_list'); + return mountApp(core, params); }, }); } diff --git a/x-pack/plugins/ml/public/application/management/jobs_list/index.ts b/x-pack/plugins/ml/public/application/management/jobs_list/index.ts index 77fa4b9c35b46b..cfe37ce14bb788 100644 --- a/x-pack/plugins/ml/public/application/management/jobs_list/index.ts +++ b/x-pack/plugins/ml/public/application/management/jobs_list/index.ts @@ -6,13 +6,25 @@ import ReactDOM, { unmountComponentAtNode } from 'react-dom'; import React from 'react'; -import { CoreStart } from 'kibana/public'; +import { CoreSetup, CoreStart } from 'kibana/public'; +import { ManagementAppMountParams } from '../../../../../../../src/plugins/management/public/'; +import { MlStartDependencies } from '../../../plugin'; import { JobsListPage } from './components'; +import { getJobsListBreadcrumbs } from '../breadcrumbs'; -export const renderApp = (element: HTMLElement, coreStart: CoreStart) => { +const renderApp = (element: HTMLElement, coreStart: CoreStart) => { const I18nContext = coreStart.i18n.Context; ReactDOM.render(React.createElement(JobsListPage, { I18nContext }), element); return () => { unmountComponentAtNode(element); }; }; + +export async function mountApp( + core: CoreSetup, + params: ManagementAppMountParams +) { + const [coreStart] = await core.getStartServices(); + params.setBreadcrumbs(getJobsListBreadcrumbs()); + return renderApp(params.element, coreStart); +}