@suspensive/react
Version:
Suspensive interfaces for react
65 lines (64 loc) • 1.84 kB
text/typescript
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