|
|
|
@ -104,23 +104,13 @@ export default class ComposeForm extends ImmutablePureComponent {
|
|
|
|
|
this.props.onChangeSpoilerText(e.target.value);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
componentWillReceiveProps (nextProps) {
|
|
|
|
|
// If this is the update where we've finished uploading,
|
|
|
|
|
// save the last caret position so we can restore it below!
|
|
|
|
|
if (!nextProps.is_uploading && this.props.is_uploading) {
|
|
|
|
|
this._restoreCaret = this.autosuggestTextarea.textarea.selectionStart;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
componentDidUpdate (prevProps) {
|
|
|
|
|
// This statement does several things:
|
|
|
|
|
// - If we're beginning a reply, and,
|
|
|
|
|
// - Replying to zero or one users, places the cursor at the end of the textbox.
|
|
|
|
|
// - Replying to more than one user, selects any usernames past the first;
|
|
|
|
|
// this provides a convenient shortcut to drop everyone else from the conversation.
|
|
|
|
|
// - If we've just finished uploading an image, and have a saved caret position,
|
|
|
|
|
// restores the cursor to that position after the text changes!
|
|
|
|
|
if (this.props.focusDate !== prevProps.focusDate || (prevProps.is_uploading && !this.props.is_uploading && typeof this._restoreCaret === 'number')) {
|
|
|
|
|
if (this.props.focusDate !== prevProps.focusDate) {
|
|
|
|
|
let selectionEnd, selectionStart;
|
|
|
|
|
|
|
|
|
|
if (this.props.preselectDate !== prevProps.preselectDate) {
|
|
|
|
|