UNPKG

2.03 kBJavaScriptView Raw
1"use strict";
2var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3 if (k2 === undefined) k2 = k;
4 Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
5}) : (function(o, m, k, k2) {
6 if (k2 === undefined) k2 = k;
7 o[k2] = m[k];
8}));
9var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
10 Object.defineProperty(o, "default", { enumerable: true, value: v });
11}) : function(o, v) {
12 o["default"] = v;
13});
14var __importStar = (this && this.__importStar) || function (mod) {
15 if (mod && mod.__esModule) return mod;
16 var result = {};
17 if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
18 __setModuleDefault(result, mod);
19 return result;
20};
21Object.defineProperty(exports, "__esModule", { value: true });
22exports.useLazyComponent = void 0;
23const react_1 = __importStar(require("react"));
24// Expected, it can be any component props
25const useLazyComponent = (compProps) => {
26 const lazy = (0, react_1.useMemo)(() => {
27 if ('lazyComponent' in compProps) {
28 return react_1.default.lazy(compProps.lazyComponent);
29 }
30 if ('component' in compProps) {
31 // In SSR, suspense is not yet supported, we cannot use React.lazy
32 if (typeof document === 'undefined') {
33 return compProps.component;
34 }
35 return react_1.default.lazy(() => Promise.resolve({ default: compProps.component }));
36 }
37 throw new Error("You must pass either 'component' or 'lazyComponent'");
38 // Very important to leave the dependencies as they are, or instead
39 // the player will remount on every frame.
40 // @ts-expect-error
41 // eslint-disable-next-line react-hooks/exhaustive-deps
42 }, [compProps.component, compProps.lazyComponent]);
43 return lazy;
44};
45exports.useLazyComponent = useLazyComponent;