2021-05-27 15:34:27 -04:00
|
|
|
import React from 'react';
|
|
|
|
import ReactDOM from 'react-dom';
|
|
|
|
|
|
|
|
export default (view, params, { detail }) => {
|
|
|
|
if (detail.options?.pageComponent) {
|
2021-05-28 16:35:27 -04:00
|
|
|
// Fetch and render the page component to the view
|
2021-05-27 15:34:27 -04:00
|
|
|
import(/* webpackChunkName: "[request]" */ `./pages/${detail.options.pageComponent}`)
|
|
|
|
.then(({ default: component }) => {
|
2021-05-28 13:38:28 -04:00
|
|
|
ReactDOM.render(React.createElement(component, params), view);
|
2021-05-27 15:34:27 -04:00
|
|
|
});
|
2021-05-28 16:35:27 -04:00
|
|
|
|
|
|
|
// Unmount component when view is destroyed
|
|
|
|
view.addEventListener('viewdestroy', () => {
|
|
|
|
ReactDOM.unmountComponentAtNode(view);
|
|
|
|
});
|
2021-05-27 15:34:27 -04:00
|
|
|
}
|
|
|
|
};
|