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;`}

Components

Renderer

{` type ComponentRegistry = Record>; interface ComponentProps { element: UIElement; children?: React.ReactNode; onAction: (name: string, params: object) => void; }`}

Hooks

useUIStream

{`const { tree, // UITree - current UI state isLoading, // boolean - true while streaming error, // Error | null generate, // (prompt: string) => void abort, // () => void } = useUIStream({ endpoint: string, });`}

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[]);`}
); }