1 | "use strict";
|
2 | Object.defineProperty(exports, "__esModule", { value: true });
|
3 | exports.ImportedComponent = void 0;
|
4 | var tslib_1 = require("tslib");
|
5 | var React = (0, tslib_1.__importStar)(require("react"));
|
6 | var config_1 = require("../configuration/config");
|
7 | var useImported_1 = require("./useImported");
|
8 |
|
9 |
|
10 |
|
11 | function 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 |
|
21 |
|
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 |
|
32 |
|
33 | console.error('react-imported-component', error);
|
34 |
|
35 |
|
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 | }
|
48 | exports.ImportedComponent = ImportedComponent;
|