Загрузка данных


// ИЗМЕНЕНИЕ 2: храним предыдущий массив выбранных опций,
    // чтобы не менять ссылку, если состав выбора не изменился
    const prevMultipleValueRef = useRef<AutocompleteOption[]>([]);
    const autocompleteValue = useMemo(() => {
      if (multiple) {
        const values = Array.isArray(value) ? value : [];
        const next = options.filter((option) =>
          values.includes(option.value),
        );
        const prev = prevMultipleValueRef.current;
        const isSameSelection =
          prev.length === next.length &&
          next.every((option, index) => prev[index]?.value === option.value);
        // Если выбранные значения те же — возвращаем СТАРУЮ ссылку.
        // Иначе MUI Autocomplete на каждое обновление options считает,
        // что value изменился, и сбрасывает inputValue в '' (reason: 'reset').
        if (isSameSelection) {
          return prev;
        }
        prevMultipleValueRef.current = next;
        return next;
      }
      return getAutocompleteValue(options, value as string);
    }, [getAutocompleteValue, multiple, options, value]);