| "use strict"; |
| Object.defineProperty(exports, "__esModule", { |
| value: true |
| }); |
| Object.defineProperty(exports, "default", { |
| enumerable: true, |
| get: function() { |
| return _default; |
| } |
| }); |
| const _jsxruntime = require("react/jsx-runtime"); |
| const _react = require("react"); |
| const _dynamicbailouttocsr = require("./dynamic-bailout-to-csr"); |
| const _preloadchunks = require("./preload-chunks"); |
| |
| |
| |
| function convertModule(mod) { |
| |
| |
| |
| |
| |
| |
| const hasDefault = mod && 'default' in mod; |
| return { |
| default: hasDefault ? mod.default : mod |
| }; |
| } |
| const defaultOptions = { |
| loader: ()=>Promise.resolve(convertModule(()=>null)), |
| loading: null, |
| ssr: true |
| }; |
| function Loadable(options) { |
| const opts = { |
| ...defaultOptions, |
| ...options |
| }; |
| const Lazy = (0, _react.lazy)(()=>opts.loader().then(convertModule)); |
| const Loading = opts.loading; |
| function LoadableComponent(props) { |
| const fallbackElement = Loading ? (0, _jsxruntime.jsx)(Loading, { |
| isLoading: true, |
| pastDelay: true, |
| error: null |
| }) : null; |
| |
| const hasSuspenseBoundary = !opts.ssr || !!opts.loading; |
| const Wrap = hasSuspenseBoundary ? _react.Suspense : _react.Fragment; |
| const wrapProps = hasSuspenseBoundary ? { |
| fallback: fallbackElement |
| } : {}; |
| const children = opts.ssr ? (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, { |
| children: [ |
| typeof window === 'undefined' ? (0, _jsxruntime.jsx)(_preloadchunks.PreloadChunks, { |
| moduleIds: opts.modules |
| }) : null, |
| (0, _jsxruntime.jsx)(Lazy, { |
| ...props |
| }) |
| ] |
| }) : (0, _jsxruntime.jsx)(_dynamicbailouttocsr.BailoutToCSR, { |
| reason: "next/dynamic", |
| children: (0, _jsxruntime.jsx)(Lazy, { |
| ...props |
| }) |
| }); |
| return (0, _jsxruntime.jsx)(Wrap, { |
| ...wrapProps, |
| children: children |
| }); |
| } |
| LoadableComponent.displayName = 'LoadableComponent'; |
| return LoadableComponent; |
| } |
| const _default = Loadable; |
|
|
| |