ohif-viewer/extensions/dicom-microscopy/src/asyncComponent.js
Erik Ziegler 89380353d2
fix: Add some code splitting for PWA build (#937)
* fix: Add some code splitting for PWA build

* Fix missing files
2019-09-26 11:35:13 +02:00

38 lines
805 B
JavaScript

/**
* We use this component to leverage "Code Splitting"
*
* Link: https://serverless-stack.com/chapters/code-splitting-in-create-react-app.html
*/
import React, { Component } from 'react';
export default function asyncComponent(importComponent) {
class AsyncComponent extends Component {
constructor(props) {
super(props);
this.state = {
component: null,
};
}
async componentDidMount() {
// Add dynamically loaded component to state
const { default: component } = await importComponent();
this.setState({
component: component,
});
}
render() {
const C = this.state.component;
// Render the loaded component, or null
return C ? <C {...this.props} /> : null;
}
}
return AsyncComponent;
}