"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.FormAsyncAutocomplete = void 0;
const jsx_runtime_1 = require("react/jsx-runtime");
const react_1 = require("react");
const AsyncAutocomplete_1 = require("../../components/AsyncAutocomplete");
const useFormFieldProps_1 = require("../useFormFieldProps");
const FormAsyncAutocomplete = (props) => {
    const fieldProps = (0, useFormFieldProps_1.useFormFieldProps)({
        ...props,
        defaultValue: props.defaultValue ||
            (props.multiple ? [] : null),
    });
    const handleOnChange = (_event, value) => {
        fieldProps.onChange(value);
    };
    const handleOnInputChange = (0, react_1.useCallback)((_event, value, reason) => {
        //Устанавливаем значение в форму если триггером изменения инпута был пользовательский ввод
        if (fieldProps.freeSolo && reason === 'input') {
            fieldProps.onChange(value);
        }
    }, [fieldProps.freeSolo, fieldProps.onInputChange]);
    return ((0, jsx_runtime_1.jsx)(AsyncAutocomplete_1.AsyncAutocomplete, { ...fieldProps, value: fieldProps.value, defaultValue: props.defaultValue, onChange: handleOnChange, onInputChange: handleOnInputChange }));
};
exports.FormAsyncAutocomplete = FormAsyncAutocomplete;
