UNPKG

@gulibs/vgrove-ui

Version:

VGrove UI component library built with HeroUI and React

45 lines 2.53 kB
import React from 'react'; import type { UseFormReturn, FieldValues, SubmitHandler, SubmitErrorHandler, UseFormReset, UseFormSetValue, Mode, FieldPath } from 'react-hook-form'; import type { SlotsToClasses } from '@heroui/react'; import type { ButtonProps } from '@heroui/react'; export type FormSlots = "base" | "footer"; export type FormFooterConfig = { resetProps?: Omit<ButtonProps, "children">; resetText?: React.ReactNode; submitProps?: Omit<ButtonProps, "children">; submitText?: React.ReactNode; hiddenReset?: boolean; onReset?: () => void; }; export interface FormInstance<TFieldValues extends FieldValues = FieldValues> extends UseFormReturn<TFieldValues> { getFieldValue: (name: FieldPath<TFieldValues>) => any; getFieldsValue: () => TFieldValues; setFieldValue: (name: FieldPath<TFieldValues>, value: any) => void; setFieldsValue: (values: Partial<TFieldValues>) => void; resetFields: () => void; validateFields: () => Promise<boolean>; setFieldError: (name: FieldPath<TFieldValues>, error: any) => void; clearFieldErrors: (names?: FieldPath<TFieldValues>[]) => void; } export interface FormAction<TFieldValues extends FieldValues = FieldValues> { submit: () => void; reset: UseFormReset<TFieldValues>; setFieldValue: UseFormSetValue<TFieldValues>; setFieldValues: (values: Partial<TFieldValues>) => void; getFieldValues: () => TFieldValues; } export interface FormProps<TFieldValues extends FieldValues = FieldValues> extends Omit<React.DetailedHTMLProps<React.FormHTMLAttributes<HTMLFormElement>, HTMLFormElement>, 'method'> { classNames?: SlotsToClasses<FormSlots>; footer?: false | FormFooterConfig; mode?: Mode; watchNames?: FieldPath<TFieldValues> | FieldPath<TFieldValues>[]; onFinish?: SubmitHandler<TFieldValues>; onFinishError?: SubmitErrorHandler<TFieldValues>; form?: FormInstance<TFieldValues>; } export declare function Form<TFieldValues extends FieldValues = FieldValues>(props: FormProps<TFieldValues>): import("react/jsx-runtime").JSX.Element; export interface FormWithMethodsProps<TFieldValues extends FieldValues = FieldValues> extends FormProps<TFieldValues> { method: FormInstance<TFieldValues>; } export declare function FormWithMethods<TFieldValues extends FieldValues = FieldValues>({ method, classNames, footer, watchNames, onFinish, onFinishError, children, ...formProps }: FormWithMethodsProps<TFieldValues>): import("react/jsx-runtime").JSX.Element; //# sourceMappingURL=Form.d.ts.map