dynamic.d.ts 1.4 KB

12345678910111213141516171819202122232425262728293031
  1. import React from 'react';
  2. export declare type LoaderComponent<P = {}> = Promise<React.ComponentType<P> | {
  3. default: React.ComponentType<P>;
  4. }>;
  5. export declare type Loader<P = {}> = (() => LoaderComponent<P>) | LoaderComponent<P>;
  6. export declare type LoaderMap = {
  7. [mdule: string]: () => Loader<any>;
  8. };
  9. export declare type LoadableGeneratedOptions = {
  10. webpack?(): any;
  11. modules?(): LoaderMap;
  12. };
  13. export declare type DynamicOptionsLoadingProps = {
  14. error?: Error | null;
  15. isLoading?: boolean;
  16. pastDelay?: boolean;
  17. retry?: () => void;
  18. timedOut?: boolean;
  19. };
  20. export declare type DynamicOptions<P = {}> = LoadableGeneratedOptions & {
  21. loading?: (loadingProps: DynamicOptionsLoadingProps) => JSX.Element | null;
  22. loader?: Loader<P> | LoaderMap;
  23. loadableGenerated?: LoadableGeneratedOptions;
  24. ssr?: boolean;
  25. suspense?: boolean;
  26. };
  27. export declare type LoadableOptions<P = {}> = DynamicOptions<P>;
  28. export declare type LoadableFn<P = {}> = (opts: LoadableOptions<P>) => React.ComponentType<P>;
  29. export declare type LoadableComponent<P = {}> = React.ComponentType<P>;
  30. export declare function noSSR<P = {}>(LoadableInitializer: LoadableFn<P>, loadableOptions: DynamicOptions<P>): React.ComponentType<P>;
  31. export default function dynamic<P = {}>(dynamicOptions: DynamicOptions<P> | Loader<P>, options?: DynamicOptions<P>): React.ComponentType<P>;