import { Code } from "@/components/code"; export const metadata = { title: "@json-render/react API | json-render", }; export default function ReactApiPage() { return (

@json-render/react

React components, providers, and hooks.

Providers

DataProvider

{` {children} `}

ActionProvider

{`}> {children} type ActionHandler = (params: Record) => void | Promise;`}

VisibilityProvider

{` {children} interface AuthState { isSignedIn: boolean; roles?: string[]; }`}

ValidationProvider

{`}> {children} type ValidatorFn = (value: unknown, args?: object) => boolean | Promise;`}

createRenderer

Factory function to create a pre-configured renderer component.

{`import { createRenderer } from '@json-render/react'; const MyRenderer = createRenderer({ registry: componentRegistry, data?: initialData, actionHandlers?: actionHandlerMap, auth?: authState, }); // Usage `}

Components

Renderer

{` type Registry = Record>; interface ComponentProps> { props: T; // Component props from spec children?: React.ReactNode; // Rendered children (for slot components) }`}

Hooks

useUIStream

{`const { spec, // Spec - current UI state isStreaming, // boolean - true while streaming error, // Error | null send, // (prompt: string) => void abort, // () => void } = useUIStream({ api: string, // API endpoint URL onChunk?: (chunk: string) => void, // Called for each chunk onFinish?: (spec: Spec) => void, // Called when streaming completes });`}

useData

{`const { data, // Record setData, // (data: object) => void getValue, // (path: string) => unknown setValue, // (path: string, value: unknown) => void } = useData();`}

useDataValue

{`const value = useDataValue(path: string);`}

useDataBinding

{`const [value, setValue] = useDataBinding(path: string);`}

useActions

{`const { dispatch } = useActions(); // dispatch(actionName: string, params: object)`}

useAction

{`const submitForm = useAction('submit_form'); // submitForm(params: object)`}

useIsVisible

{`const isVisible = useIsVisible(condition?: VisibilityCondition);`}

useFieldValidation

{`const { value, // unknown setValue, // (value: unknown) => void errors, // string[] validate, // () => Promise isValid, // boolean } = useFieldValidation(path: string, checks: ValidationCheck[]);`}
); }