| import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; |
| import React from 'react'; |
| import Loadable from './loadable.shared-runtime'; |
| const isServerSide = typeof window === 'undefined'; |
| |
| |
| |
| function convertModule(mod) { |
| return { |
| default: (mod == null ? void 0 : mod.default) || mod |
| }; |
| } |
| export function noSSR(LoadableInitializer, loadableOptions) { |
| |
| delete loadableOptions.webpack; |
| delete loadableOptions.modules; |
| |
| if (!isServerSide) { |
| return LoadableInitializer(loadableOptions); |
| } |
| const Loading = loadableOptions.loading; |
| |
| return ()=> _jsx(Loading, { |
| error: null, |
| isLoading: true, |
| pastDelay: false, |
| timedOut: false |
| }); |
| } |
| |
| |
| |
| |
| |
| export default function dynamic(dynamicOptions, options) { |
| let loadableFn = Loadable; |
| let loadableOptions = { |
| |
| loading: (param)=>{ |
| let { error, isLoading, pastDelay } = param; |
| if (!pastDelay) return null; |
| if (process.env.NODE_ENV !== 'production') { |
| if (isLoading) { |
| return null; |
| } |
| if (error) { |
| return _jsxs("p", { |
| children: [ |
| error.message, |
| _jsx("br", {}), |
| error.stack |
| ] |
| }); |
| } |
| } |
| return null; |
| } |
| }; |
| |
| |
| |
| |
| if (dynamicOptions instanceof Promise) { |
| loadableOptions.loader = ()=>dynamicOptions; |
| |
| } else if (typeof dynamicOptions === 'function') { |
| loadableOptions.loader = dynamicOptions; |
| |
| } else if (typeof dynamicOptions === 'object') { |
| loadableOptions = { |
| ...loadableOptions, |
| ...dynamicOptions |
| }; |
| } |
| |
| loadableOptions = { |
| ...loadableOptions, |
| ...options |
| }; |
| const loaderFn = loadableOptions.loader; |
| const loader = ()=>loaderFn != null ? loaderFn().then(convertModule) : Promise.resolve(convertModule(()=>null)); |
| |
| if (loadableOptions.loadableGenerated) { |
| loadableOptions = { |
| ...loadableOptions, |
| ...loadableOptions.loadableGenerated |
| }; |
| delete loadableOptions.loadableGenerated; |
| } |
| |
| if (typeof loadableOptions.ssr === 'boolean' && !loadableOptions.ssr) { |
| delete loadableOptions.webpack; |
| delete loadableOptions.modules; |
| return noSSR(loadableFn, loadableOptions); |
| } |
| return loadableFn({ |
| ...loadableOptions, |
| loader: loader |
| }); |
| } |
|
|
| |