_getHint() {
    if (this.state.isOpen) {
      const filteredOptions = this.filteredOptions;
      if (filteredOptions && filteredOptions.length > 0) {
        let hint;
        const focusedOptionIndex = this.state.focusedOptionIndex;
        const inputValue = this.state.inputValue;
        if (focusedOptionIndex >= 0) {
          hint = filteredOptions[focusedOptionIndex].props.value;
        } else if (inputValue && inputValue.length > 0) {
          hint = filteredOptions[0].props.value;
        }

        if (hint) {
          if (inputValue && inputValue.length > 0) {
            const position = hint.toLowerCase().indexOf(inputValue.toLowerCase());
            if (position === 0) {
              return inputValue + hint.substr(inputValue.length, (hint.length - inputValue.length));
            } else if (position === -1) {
              return hint;
            }
          } else {
            return hint;
          }
        }
      }
    }

    return undefined;
  }
This method will calculate the hint that should be present in comboBox at some point in time. Rules:
1. If menu is not open hint is undefined
2. If menu is open but there are no filteredOptions hint is undefined
3. If if some option is highlighted hint is equal to its value
4. If no option is highlighted but some value is present in input box hint is equal to value of first filteredOptions
If user has typed some text in input box and there is a hint(according to above calculations), the starting of hint
is replaced by the text input by user ( this is to make sure that case of letters in hint is same as that in input box
value and overlap is perfect.)
todo: simplify logic in method below