import { useEffect } from 'react';
import { useWatch, } from 'react-hook-form';
/**
 * Хук для отслеживания изменений значения поля формы и вызова обратного вызова при их изменении.
 *
 * @example
 * ```tsx
 * const MyComponent = () => {
 *   const { control } = useForm();
 *
 *   const onFieldChange = (value) => {
 *     console.log('Значение поля изменилось:', value);
 *   };
 *
 *   useFormWatchFields({
 *    name: 'myField',
 *    control,
 *    callback: onFieldChange
 *   });
 *
 *   return <input name="myField" />;
 * };
 * ```
 */
export const useFormWatchFields = ({ name, control, callback, }) => {
    const checkIsDisabled = () => {
        if (Array.isArray(name)) {
            return !name.length;
        }
        return !name;
    };
    const value = useWatch({ name, control, disabled: checkIsDisabled() });
    useEffect(() => {
        callback(value);
    }, [value]);
};
