@mantine/form
Version:
Mantine form management library
41 lines (40 loc) • 2.01 kB
TypeScript
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 {};