UNPKG

@mantine/form

Version:

Mantine form management library

41 lines (40 loc) 2.01 kB
import { FormMode } from '../../types'; export interface $FormValues<out Values extends Record<PropertyKey, any>> { initialized: React.RefObject<boolean>; stateValues: Values; refValues: React.RefObject<Values>; valuesSnapshot: React.RefObject<Values>; setValues: <TValues extends Values>(payload: SetValuesInput<TValues>) => void; setFieldValue: <TValues extends Values>(payload: SetFieldValueInput<TValues>) => void; resetValues: () => void; setValuesSnapshot: <TValues extends Values>(payload: TValues) => void; initialize: <TValues extends Values>(values: TValues, onInitialize: () => void) => void; getValues: () => Values; getValuesSnapshot: () => Values; resetField: <TValues extends Values>(path: PropertyKey, subscribers?: (SetFieldValueSubscriber<TValues> | null | undefined)[]) => void; } export interface SetValuesSubscriberPayload<Values> { path?: PropertyKey; updatedValues: Values; previousValues: Values; } export interface SetValuesInput<out Values = Record<string, any>> { values: Partial<Values> | (<TValues extends Values>(values: TValues) => Partial<TValues>); mergeWithPreviousValues?: boolean; updateState?: boolean; subscribers?: (SetFieldValueSubscriber<Values> | null | undefined)[]; } export type SetFieldValueSubscriber<out Values> = <TValues extends Values>(payload: SetValuesSubscriberPayload<TValues>) => void; export interface SetFieldValueInput<Values> { path: PropertyKey; value: any; updateState?: boolean; subscribers?: (SetFieldValueSubscriber<Values> | null | undefined)[]; } interface UseFormValuesInput<Values extends Record<PropertyKey, any>> { initialValues: Values | undefined; mode: FormMode; onValuesChange?: ((values: Values, previousValues: Values) => void) | undefined; } export declare function useFormValues<Values extends Record<PropertyKey, any>>({ initialValues, onValuesChange, mode, }: UseFormValuesInput<Values>): $FormValues<Values>; export {};