Fix caret position after inserting suggestions (fixes #281)
This commit is contained in:
@@ -56,6 +56,7 @@ function mapStateToProps (state) {
|
||||
advancedOptions: state.getIn(['compose', 'advanced_options']),
|
||||
amUnlocked: !state.getIn(['accounts', me, 'locked']),
|
||||
focusDate: state.getIn(['compose', 'focusDate']),
|
||||
caretPosition: state.getIn(['compose', 'caretPosition']),
|
||||
isSubmitting: state.getIn(['compose', 'is_submitting']),
|
||||
isUploading: state.getIn(['compose', 'is_uploading']),
|
||||
layout: state.getIn(['local_settings', 'layout']),
|
||||
@@ -117,7 +118,6 @@ const handlers = {
|
||||
handleEmoji (data) {
|
||||
const { textarea: { selectionStart } } = this;
|
||||
const { onInsertEmoji } = this.props;
|
||||
this.caretPos = selectionStart + data.native.length + 1;
|
||||
if (onInsertEmoji) {
|
||||
onInsertEmoji(selectionStart, data);
|
||||
}
|
||||
@@ -139,7 +139,6 @@ const handlers = {
|
||||
// Selects a suggestion from the autofill.
|
||||
handleSelect (tokenStart, token, value) {
|
||||
const { onSelectSuggestion } = this.props;
|
||||
this.caretPos = null;
|
||||
if (onSelectSuggestion) {
|
||||
onSelectSuggestion(tokenStart, token, value);
|
||||
}
|
||||
@@ -191,7 +190,6 @@ class Composer extends React.Component {
|
||||
assignHandlers(this, handlers);
|
||||
|
||||
// Instance variables.
|
||||
this.caretPos = null;
|
||||
this.textarea = null;
|
||||
}
|
||||
|
||||
@@ -220,11 +218,11 @@ class Composer extends React.Component {
|
||||
// everyone else from the conversation.
|
||||
componentDidUpdate (prevProps) {
|
||||
const {
|
||||
caretPos,
|
||||
textarea,
|
||||
} = this;
|
||||
const {
|
||||
focusDate,
|
||||
caretPosition,
|
||||
isSubmitting,
|
||||
preselectDate,
|
||||
text,
|
||||
@@ -238,8 +236,8 @@ class Composer extends React.Component {
|
||||
selectionStart = text.search(/\s/) + 1;
|
||||
selectionEnd = text.length;
|
||||
break;
|
||||
case !isNaN(caretPos) && caretPos !== null:
|
||||
selectionStart = selectionEnd = caretPos;
|
||||
case !isNaN(caretPosition) && caretPosition !== null:
|
||||
selectionStart = selectionEnd = caretPosition;
|
||||
break;
|
||||
default:
|
||||
selectionStart = selectionEnd = text.length;
|
||||
@@ -396,6 +394,7 @@ Composer.propTypes = {
|
||||
advancedOptions: ImmutablePropTypes.map,
|
||||
amUnlocked: PropTypes.bool,
|
||||
focusDate: PropTypes.instanceOf(Date),
|
||||
caretPosition: PropTypes.number,
|
||||
isSubmitting: PropTypes.bool,
|
||||
isUploading: PropTypes.bool,
|
||||
layout: PropTypes.string,
|
||||
|
Reference in New Issue
Block a user