From bb9f9d4b8405b1d8fba3c315d4bef4b7213416c9 Mon Sep 17 00:00:00 2001 From: Ben Gotow Date: Fri, 8 Jan 2016 18:45:26 -0800 Subject: [PATCH] fix(composer): Temporary patch for broken focus Long term, we need to refactor this so that it's either entirely controlled or uncontrolled. Potentially use focusin? --- internal_packages/composer/lib/composer-editor.jsx | 2 ++ internal_packages/composer/lib/composer-view.cjsx | 12 +++++------- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/internal_packages/composer/lib/composer-editor.jsx b/internal_packages/composer/lib/composer-editor.jsx index 67c1e386f..d8df71602 100644 --- a/internal_packages/composer/lib/composer-editor.jsx +++ b/internal_packages/composer/lib/composer-editor.jsx @@ -70,6 +70,7 @@ class ComposerEditor extends Component { draftClientId: PropTypes.string, initialSelectionSnapshot: PropTypes.object, onFocus: PropTypes.func.isRequired, + onBlur: PropTypes.func.isRequired, onFilePaste: PropTypes.func.isRequired, onBodyChanged: PropTypes.func.isRequired, parentActions: PropTypes.shape({ @@ -85,6 +86,7 @@ class ComposerEditor extends Component { }; this._coreExtension = { onFocus: props.onFocus, + onBlur: props.onBlur, }; } diff --git a/internal_packages/composer/lib/composer-view.cjsx b/internal_packages/composer/lib/composer-view.cjsx index 23b0d47ca..de55c0681 100644 --- a/internal_packages/composer/lib/composer-view.cjsx +++ b/internal_packages/composer/lib/composer-view.cjsx @@ -269,8 +269,8 @@ class ComposerView extends React.Component @_onChangeFocusedField(enabledFields[newI]) _onChangeFocusedField: (focusedField) => - @setState {focusedField} - if focusedField in [Fields.To, Fields.Cc, Fields.Bcc] + @setState({focusedField}) + if focusedField in Fields.ParticipantFields @_lastFocusedParticipantField = focusedField _onExpandParticipantFields: => @@ -296,7 +296,7 @@ class ComposerView extends React.Component ref={Fields.Subject} placeholder="Subject" value={@state.subject} - onFocus={ => @setState focusedField: Fields.Subject} + onFocus={ => @setState(focusedField: Fields.Subject) } onChange={@_onChangeSubject}/> @@ -316,7 +316,8 @@ class ComposerView extends React.Component scrollTo: @props.scrollTo } initialSelectionSnapshot: @_recoveredSelection - onFocus: @_onEditorFocus + onFocus: => @setState(focusedField: Fields.Body) + onBlur: => @setState(focusedField: null) onFilePaste: @_onFilePaste onBodyChanged: @_onBodyChanged @@ -340,9 +341,6 @@ class ComposerView extends React.Component _onEditorBodyDidRender: => @_applyFieldFocus() - _onEditorFocus: => - @setState(focusedField: Fields.Body) - # The contenteditable decides when to request a scroll based on the # position of the cursor and its relative distance to this composer # component. We provide it our boundingClientRect so it can calculate