UNPKG

1.94 kBJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.ImportedComponent = void 0;
4var tslib_1 = require("tslib");
5var React = (0, tslib_1.__importStar)(require("react"));
6var config_1 = require("../configuration/config");
7var useImported_1 = require("./useImported");
8/**
9 * @deprecated use {@link useImported} instead
10 */
11function ImportedComponent(props) {
12 var _a = (0, useImported_1.useImported)(props.loadable), loading = _a.loading, error = _a.error, loadable = _a.loadable, Component = _a.imported, retry = _a.retry;
13 if (loading && props.async) {
14 throw loadable.resolution;
15 }
16 if ('render' in props && props.render) {
17 return props.render(Component, { loading: loading, error: error }, props.forwardProps);
18 }
19 if (Component) {
20 // importedUUID for cache busting
21 // @ts-ignore
22 return React.createElement(Component, (0, tslib_1.__assign)({}, props.forwardProps, { ref: props.forwardRef }));
23 }
24 if (loading) {
25 if (props.async) {
26 throw loadable.resolution;
27 }
28 return props.LoadingComponent ? React.createElement(props.LoadingComponent, (0, tslib_1.__assign)({}, props.forwardProps)) : null;
29 }
30 if (error) {
31 // always report errors
32 // tslint:disable-next-line:no-console
33 console.error('react-imported-component', error);
34 // let's rethrow the error after react leaves this function
35 // this might be very crucial for the "safe" dev mode
36 if (config_1.settings.rethrowErrors) {
37 setTimeout(function () {
38 throw error;
39 });
40 }
41 if (props.ErrorComponent) {
42 return React.createElement(props.ErrorComponent, (0, tslib_1.__assign)({ retryImport: retry, error: error }, props.forwardProps));
43 }
44 throw error;
45 }
46 return null;
47}
48exports.ImportedComponent = ImportedComponent;