/** * @author yaoxue * @date 2024/08/19 * @description 表单 */ import React, { PropsWithChildren, RefAttributes, ReactElement, ReactNode } from 'react'; import { useWatch } from 'rc-field-form'; import type { FormProps as RcFormProps } from 'rc-field-form/lib/Form'; import type { FormRef } from 'rc-field-form/lib/interface'; import type { FormLabelAlign } from './interface'; import type { FormInstance } from './hooks/useForm'; import useForm from './hooks/useForm'; import type { FeedbackIcons } from './FieldFormItem'; export type RequiredMark = boolean | 'optional' | ((labelNode: ReactNode, info: { required: boolean; }) => ReactNode); export type FormLayout = 'horizontal' | 'vertical'; export type FormItemLayout = 'horizontal' | 'vertical'; export interface FormProps extends Omit, 'form'> { colon?: boolean; name?: string; layout?: FormLayout; labelAlign?: FormLabelAlign; labelWrap?: boolean; labelWidth?: number | string; form?: FormInstance; feedbackIcons?: FeedbackIcons; disabled?: boolean; requiredMark?: RequiredMark; size?: 'small' | 'medium' | 'large'; } declare const FieldForm: ((props: FormProps & { children?: React.ReactNode; } & React.RefAttributes>) => ReactElement) & Pick, "displayName">; export { useForm, useWatch, type FormInstance }; export default FieldForm;