diff --git a/app/components/autocomplete/autocomplete.js b/app/components/autocomplete/autocomplete.js index b5b1dfe7d..aeda11ad7 100644 --- a/app/components/autocomplete/autocomplete.js +++ b/app/components/autocomplete/autocomplete.js @@ -30,6 +30,7 @@ export default class Autocomplete extends PureComponent { static defaultProps = { isSearch: false, + cursorPosition: 0, }; state = { diff --git a/app/screens/search/search.js b/app/screens/search/search.js index 6dcb567f2..1bcf645b4 100644 --- a/app/screens/search/search.js +++ b/app/screens/search/search.js @@ -81,6 +81,7 @@ export default class Search extends PureComponent { this.isX = DeviceInfo.getModel() === 'iPhone X'; this.state = { channelName: '', + cursorPosition: 0, value: '', managedConfig: {}, }; @@ -123,10 +124,6 @@ export default class Search extends PureComponent { mattermostManaged.removeEventListener(this.listenerId); } - attachAutocomplete = (c) => { - this.autocomplete = c; - }; - cancelSearch = preventDoubleTap(() => { const {navigator} = this.props; this.handleTextChanged('', true); @@ -173,9 +170,10 @@ export default class Search extends PureComponent { }; handleSelectionChange = (event) => { - if (this.autocomplete) { - this.autocomplete.getWrappedInstance().handleSelectionChange(event); - } + const cursorPosition = event.nativeEvent.selection.end; + this.setState({ + cursorPosition, + }); }; handleTextChanged = (value, selectionChanged) => { @@ -490,7 +488,10 @@ export default class Search extends PureComponent { } = this.props; const {intl} = this.context; - const {value} = this.state; + const { + cursorPosition, + value, + } = this.state; const style = getStyleFromTheme(theme); const sections = [{ data: [{ @@ -625,7 +626,7 @@ export default class Search extends PureComponent { stickySectionHeadersEnabled={Platform.OS === 'ios'} />