@ui-schema/react
Version:
Schema-driven UI generator for React using JSON Schema. Build powerful form and interface generators with headless components and hooks.
17 lines (16 loc) • 1.31 kB
TypeScript
import type { UIMetaContextBase } from '@ui-schema/react/UIMeta';
import type { UIStoreActions } from '@ui-schema/react/UIStoreActions';
import type { WidgetPayload } from '@ui-schema/ui-schema/Widget';
import type { ComponentType, ReactNode } from 'react';
import type { WidgetEngineOverrideProps, WidgetPluginProps } from '@ui-schema/react/WidgetEngine';
import type { WithOnChange, WithValuePlain } from '@ui-schema/react/UIStore';
import { BindingTypeWidgets, NoWidgetProps, WidgetProps } from '@ui-schema/react/Widget';
export interface WidgetRendererProps extends Omit<WidgetPluginProps, 'binding' | 'Next'> {
WidgetOverride?: WidgetEngineOverrideProps['WidgetOverride'];
}
export declare const WidgetRenderer: <A = UIStoreActions, B = {}, WP extends WidgetProps<B, A> = WidgetProps<B, A>>({ value, internalValue, WidgetOverride, errors, onErrors, Next, ...props }: WidgetRendererProps & Omit<NoInfer<WP>, 'binding' | keyof WidgetRendererProps> & {
binding?: Omit<NoInfer<B>, 'VirtualRenderer' | 'NoWidget' | 'widgets' | 'matchWidget'> & {
VirtualRenderer?: ComponentType<WidgetPayload & UIMetaContextBase & WithOnChange & WithValuePlain>;
NoWidget?: ComponentType<NoWidgetProps>;
} & Omit<BindingTypeWidgets<A, B, WP>, 'widgetPlugins' | 'WidgetRenderer'>;
}) => ReactNode;