Merge pull request #20673 from backstage/rugvip/import

dev-utils,techdocs: use dynamic import instead of require for conditional react-dom
This commit is contained in:
Patrik Oldsberg
2023-10-19 11:27:51 +02:00
committed by GitHub
3 changed files with 32 additions and 16 deletions
@@ -14,18 +14,22 @@
* limitations under the License.
*/
let ReactDOM: typeof import('react-dom') | typeof import('react-dom/client');
let ReactDOMPromise: Promise<
typeof import('react-dom') | typeof import('react-dom/client')
>;
if (process.env.HAS_REACT_DOM_CLIENT) {
ReactDOM = require('react-dom/client');
ReactDOMPromise = import('react-dom/client');
} else {
ReactDOM = require('react-dom');
ReactDOMPromise = import('react-dom');
}
/** @internal */
export function renderReactElement(element: JSX.Element, root: HTMLElement) {
if ('createRoot' in ReactDOM) {
ReactDOM.createRoot(root).render(element);
} else {
ReactDOM.render(element, root);
}
ReactDOMPromise.then(ReactDOM => {
if ('createRoot' in ReactDOM) {
ReactDOM.createRoot(root).render(element);
} else {
ReactDOM.render(element, root);
}
});
}