@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
TypeScript
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;