UNPKG

@data-driven-forms/react-form-renderer

Version:

React Form Renderer. Data Driven Forms converts JSON form definitions into fully functional React forms.

13 lines (12 loc) 635 B
import React from 'react'; import { AnyObject } from './any-object'; export interface ExtendedMapperComponent extends AnyObject { component: React.ComponentType | React.FunctionComponent | React.ElementType; } interface ComponentMapper { [key: string]: React.ComponentType | React.FunctionComponent | React.ElementType | ExtendedMapperComponent; } export type ComponentPropsMap<T extends ComponentMapper> = { [K in keyof T]: T[K] extends React.ComponentType<infer P> ? P : T[K] extends ExtendedMapperComponent ? T[K]['component'] extends React.ComponentType<infer P> ? P : never : never; }; export default ComponentMapper;