diff --git a/types/loadable__component/index.d.ts b/types/loadable__component/index.d.ts index c4877bd8a9..5e1faffda7 100644 --- a/types/loadable__component/index.d.ts +++ b/types/loadable__component/index.d.ts @@ -14,15 +14,16 @@ export type DefaultComponent

= React.ComponentType

| DefaultImportedCompon export interface Options { fallback?: JSX.Element; + ssr?: boolean; } -export type LoadableComponent = React.ComponentType; +export type LoadableComponent = React.ComponentType & { preload(props?: T): void }; export type LoadableLibrary = React.ComponentType<{ fallback?: JSX.Element; children?: (module: TModule) => React.ReactNode; ref?: React.Ref; }> & - TModule; + TModule & { preload(props?: object): void }; declare function lib( loadFn: (props: object) => Promise, diff --git a/types/loadable__component/loadable__component-tests.tsx b/types/loadable__component/loadable__component-tests.tsx index d286711be1..d5abfa3a5c 100644 --- a/types/loadable__component/loadable__component-tests.tsx +++ b/types/loadable__component/loadable__component-tests.tsx @@ -36,8 +36,14 @@ function importLibLoader() { // Should allow passing JSX element to fallback in options loadable(defaultImportComponentLoader, { fallback:

loading...
}); + // Should allow passing boolean to `ssr` in options + loadable(defaultImportComponentLoader, { ssr: true }); + // Should allow passing `fallback` prop to loadable component loading...} />; + + // Should allow preloading + LoadableComponent.preload(); } // lazy @@ -52,6 +58,9 @@ function importLibLoader() { // Should allow passing fallback prop loading...} />; + + // Should allow preloading + LazyComponent.preload(); } // loadable.lib @@ -71,6 +80,9 @@ function importLibLoader() { // Should allow passing fallback JSX element loadable.lib(importLibLoader, { fallback:
loading lib...
}); + // Should allow passing boolean to `ssr` in options + loadable.lib(defaultImportComponentLoader, { ssr: true }); + // Should allow passing fallback prop Loading library...}> {({ getTestObj }) => getTestObj().foo} @@ -80,6 +92,9 @@ function importLibLoader() { const ref = React.createRef(); ; ref.current!.getTestObj().foo; + + // Should allow preloading + LoadableLibrary.preload(); } // lazy.lib @@ -105,6 +120,9 @@ function importLibLoader() { const ref = React.createRef(); ; ref.current!.getTestObj().foo; + + // Should allow preloading + LazyDefaultLibrary.preload(); } // loadableReady