windly
Version:
47 lines (46 loc) • 1.42 kB
TypeScript
import { FormInstance, Rule } from "antd/es/form";
interface FormFieldOption {
label: string;
value: string | number | boolean;
disabled?: boolean;
}
interface MultipleCheckboxItem {
name: string;
label: string;
disabled?: boolean;
}
type FormFieldType = 'text' | 'number' | 'password' | 'dropdown' | 'date' | 'rangepicker' | 'currencySelect' | 'toggle' | 'checkboxGroup' | 'multipleCheckboxRow' | 'colorPicker';
interface FormFieldConfig {
type: FormFieldType;
name?: string;
label?: string;
defaultValue?: any;
disabled?: boolean;
rules?: Rule[];
required?: boolean;
options?: FormFieldOption[];
minvalue?: number;
maxvalue?: number;
css?: string;
checkboxGroup?: FormFieldOption[];
multipleCheckboxRow?: MultipleCheckboxItem[];
minDate?: string;
dateFormat?: string;
}
interface RFormWithDrawerProps {
title: string;
open: boolean;
closePanle: () => void;
formConfig: FormFieldConfig[];
onSubmit: (values: any, isSaveAndAddMore: boolean) => void;
drawerId: string;
record?: Record<string, any> | null;
loading?: boolean;
size?: number | string;
RowItem?: number;
handleFieldChange?: (changedValues: any, allValues: any, form: FormInstance) => void;
buttonText?: string;
saveAndAddMoreButton?: boolean;
dateFormat?: string;
}
export { RFormWithDrawerProps, FormFieldConfig };