@mantine/form
Version:
Mantine form management library
23 lines (22 loc) • 1.29 kB
TypeScript
import { LooseKeys } from '../../paths.types';
import { FormFieldSubscriber, Watch } from '../../types';
import { $FormStatus } from '../use-form-status/use-form-status';
import { $FormValues, SetValuesSubscriberPayload } from '../use-form-values/use-form-values';
interface UseFormWatchInput<out Values extends Record<PropertyKey, any>> {
$values: $FormValues<Values>;
$status: $FormStatus<Values>;
cascadeUpdates?: boolean;
}
export interface $FormWatch<Values extends Record<PropertyKey, any>> {
subscribers: React.RefObject<Record<string, FormFieldSubscriber<Values, any>[]>>;
watch: Watch<Values, any>;
getFieldSubscribers: (path: any) => ((input: SetValuesSubscriberPayload<Values>) => void)[];
notifyWatchSubscribers: (previousValues: Values) => void;
}
export declare function useFormWatch<Values extends Record<PropertyKey, any>, Field extends LooseKeys<Values> = LooseKeys<Values>>({ $values, $status, cascadeUpdates }: UseFormWatchInput<Values>): {
subscribers: import("react").RefObject<Record<Field, FormFieldSubscriber<Values, Field>[]>>;
watch: Watch<Values, Field>;
getFieldSubscribers: (path: Field) => ((input: SetValuesSubscriberPayload<Values>) => void)[];
notifyWatchSubscribers: (previousValues: Values) => void;
};
export {};