Use the new `onClose` autocomplete prop

This commit is contained in:
Nicolas Gotchac 2016-12-10 17:06:44 +01:00
parent 84116130f6
commit cd6ab07217
1 changed files with 4 additions and 16 deletions

View File

@ -44,7 +44,6 @@ export default class AutoComplete extends Component {
lastChangedValue: undefined, lastChangedValue: undefined,
entry: null, entry: null,
open: false, open: false,
fakeBlur: false,
dataSource: [] dataSource: []
} }
@ -78,7 +77,7 @@ export default class AutoComplete extends Component {
onUpdateInput={ onUpdateInput } onUpdateInput={ onUpdateInput }
searchText={ value } searchText={ value }
onFocus={ this.onFocus } onFocus={ this.onFocus }
onBlur={ this.onBlur } onClose={ this.onClose }
animation={ PopoverAnimationVertical } animation={ PopoverAnimationVertical }
filter={ filter } filter={ filter }
popoverProps={ { open } } popoverProps={ { open } }
@ -121,7 +120,6 @@ export default class AutoComplete extends Component {
case 'down': case 'down':
const { menu } = muiAutocomplete.refs; const { menu } = muiAutocomplete.refs;
menu && menu.handleKeyDown(event); menu && menu.handleKeyDown(event);
this.setState({ fakeBlur: true });
break; break;
case 'enter': case 'enter':
@ -155,22 +153,12 @@ export default class AutoComplete extends Component {
this.setState({ entry, open: false }); this.setState({ entry, open: false });
} }
onBlur = (event) => { onClose = (event) => {
const { onUpdateInput } = this.props; const { onUpdateInput } = this.props;
// TODO: Handle blur gracefully where we use onUpdateInput (currently replaces
// input where text is allowed with the last selected value from the dropdown)
if (!onUpdateInput) { if (!onUpdateInput) {
window.setTimeout(() => { const { entry } = this.state;
const { entry, fakeBlur } = this.state; this.handleOnChange(entry);
if (fakeBlur) {
this.setState({ fakeBlur: false });
return;
}
this.handleOnChange(entry);
}, 200);
} }
} }