simplr-forms-dom
Version:
DOM components for simplr-forms.
30 lines (29 loc) • 1.31 kB
TypeScript
/// <reference types="react" />
import * as React from "react";
import { FieldValue, FieldProps, FieldStoreState } from "simplr-forms/contracts";
import { FormStore } from "simplr-forms/stores";
export interface HTMLElementProps<TElement> extends React.HTMLProps<TElement> {
ref?: React.Ref<any>;
value?: any;
defaultValue?: any;
onChange?: FieldOnChangeInternalCallback;
children?: React.ReactNode;
}
export declare type FieldOnChangeInternalCallback = (event: React.FormEvent<any>, ...parameters: any[]) => void;
export declare type FieldOnChangeCallback<TElement> = (event: React.FormEvent<TElement>, newValue: FieldValue, fieldId: string, store: FormStore) => void;
export interface DomFieldProps extends FieldProps {
template?: DomFieldTemplateCallback;
onFocus?: React.FocusEventHandler<any>;
onBlur?: React.FocusEventHandler<any>;
children?: React.ReactNode;
}
export interface DomFieldDetails {
id: string;
name: string;
fieldGroupId: string;
}
export interface DomComponentData {
props: FieldProps;
state: FieldStoreState;
}
export declare type DomFieldTemplateCallback = (renderField: () => JSX.Element | null, fieldDetails: DomFieldDetails, store: FormStore, componentData: DomComponentData) => JSX.Element | null;