~cytrogen/masto-fe

8f3c32e29cf13a84b2f0a58da0ab0c99a88caad5 — Jeong Arm 6 years ago cac9110
Scroll to compose form when focus (#10970)

* Scroll to compose form when focus

* Get rid of constructor
M app/javascript/mastodon/components/autosuggest_textarea.js => app/javascript/mastodon/components/autosuggest_textarea.js +4 -1
@@ 138,8 138,11 @@ export default class AutosuggestTextarea extends ImmutablePureComponent {
    this.setState({ suggestionsHidden: true, focused: false });
  }

  onFocus = () => {
  onFocus = (e) => {
    this.setState({ focused: true });
    if (this.props.onFocus) {
      this.props.onFocus(e);
    }
  }

  onSuggestionClick = (e) => {

M app/javascript/mastodon/features/compose/components/compose_form.js => app/javascript/mastodon/features/compose/components/compose_form.js +10 -1
@@ 33,6 33,10 @@ const messages = defineMessages({
export default @injectIntl
class ComposeForm extends ImmutablePureComponent {

  setRef = c => {
    this.composeForm = c;
  };

  static contextTypes = {
    router: PropTypes.object,
  };


@@ 114,6 118,10 @@ class ComposeForm extends ImmutablePureComponent {
    this.props.onChangeSpoilerText(e.target.value);
  }

  handleFocus = () => {
    this.composeForm.scrollIntoView();
  }

  componentDidUpdate (prevProps) {
    // This statement does several things:
    // - If we're beginning a reply, and,


@@ 177,7 185,7 @@ class ComposeForm extends ImmutablePureComponent {
    }

    return (
      <div className='compose-form'>
      <div className='compose-form' ref={this.setRef}>
        <WarningContainer />

        <ReplyIndicatorContainer />


@@ 211,6 219,7 @@ class ComposeForm extends ImmutablePureComponent {
          value={this.props.text}
          onChange={this.handleChange}
          suggestions={this.props.suggestions}
          onFocus={this.handleFocus}
          onKeyDown={this.handleKeyDown}
          onSuggestionsFetchRequested={this.onSuggestionsFetchRequested}
          onSuggestionsClearRequested={this.onSuggestionsClearRequested}