UNPKG

@suspensive/react

Version:

Suspensive interfaces for react

65 lines (64 loc) 1.84 kB
import { DelayDefaultPropsContext, SuspenseDefaultPropsContext } from "./contexts/DefaultPropsContexts.mjs"; import { ContextType, PropsWithChildren } from "react"; import * as _$react_jsx_runtime0 from "react/jsx-runtime"; //#region src/DefaultProps.d.ts /** * A class for configuring default props for Suspensive components. * * @example * ```tsx * const defaultProps = new DefaultProps({ * Delay: { * ms: 1200, * fallback: <LoadingMessage>Loading additional content...</LoadingMessage> * }, * Suspense: { * fallback: <Spinner>Fetching data...</Spinner>, * clientOnly: false, * }, * }) * ``` */ declare class DefaultProps { Suspense?: ContextType<typeof SuspenseDefaultPropsContext>; Delay?: ContextType<typeof DelayDefaultPropsContext>; constructor(defaultProps?: DefaultProps); } interface DefaultPropsProviderProps extends PropsWithChildren { defaultProps: DefaultProps; } /** * A provider component that controls the default settings of Suspensive components. * Use this to configure default props for Suspense, Delay, and other Suspensive components globally. * * @example * ```tsx * const defaultProps = new DefaultProps({ * Delay: { * ms: 1000, * fallback: <LoadingSpinner /> * }, * Suspense: { * fallback: <Skeleton />, * clientOnly: false, * }, * }) * * function App() { * return ( * <DefaultPropsProvider defaultProps={defaultProps}> * <YourApp /> * </DefaultPropsProvider> * ) * } * ``` * * @see {@link https://suspensive.org/docs/react/DefaultPropsProvider Suspensive Docs} */ declare const DefaultPropsProvider: ({ defaultProps, children }: DefaultPropsProviderProps) => _$react_jsx_runtime0.JSX.Element; //#endregion export { DefaultProps, DefaultPropsProvider }; //# sourceMappingURL=DefaultProps.d.mts.map