Focus CW field when enabling it, focus compose textarea when disabling it
Porta99179d31f
and09147186b7
to glitch-soc
This commit is contained in:
@@ -237,6 +237,13 @@ const handlers = {
|
||||
this.textarea = textareaComponent.textarea;
|
||||
}
|
||||
},
|
||||
|
||||
// Sets a reference to the CW field.
|
||||
handleRefSpoilerText (spoilerComponent) {
|
||||
if (spoilerComponent) {
|
||||
this.spoilerText = spoilerComponent.spoilerText;
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
// The component.
|
||||
@@ -249,6 +256,7 @@ class Composer extends React.Component {
|
||||
|
||||
// Instance variables.
|
||||
this.textarea = null;
|
||||
this.spoilerText = null;
|
||||
}
|
||||
|
||||
// Tells our state the composer has been mounted.
|
||||
@@ -277,6 +285,7 @@ class Composer extends React.Component {
|
||||
componentDidUpdate (prevProps) {
|
||||
const {
|
||||
textarea,
|
||||
spoilerText,
|
||||
} = this;
|
||||
const {
|
||||
focusDate,
|
||||
@@ -308,6 +317,16 @@ class Composer extends React.Component {
|
||||
// Refocuses the textarea after submitting.
|
||||
} else if (textarea && prevProps.isSubmitting && !isSubmitting) {
|
||||
textarea.focus();
|
||||
} else if (this.props.spoiler !== prevProps.spoiler) {
|
||||
if (this.props.spoiler) {
|
||||
if (spoilerText) {
|
||||
spoilerText.focus();
|
||||
}
|
||||
} else {
|
||||
if (textarea) {
|
||||
textarea.focus();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -319,6 +338,7 @@ class Composer extends React.Component {
|
||||
handleSelect,
|
||||
handleSubmit,
|
||||
handleRefTextarea,
|
||||
handleRefSpoilerText,
|
||||
} = this.handlers;
|
||||
const {
|
||||
acceptContentTypes,
|
||||
@@ -378,6 +398,7 @@ class Composer extends React.Component {
|
||||
onChange={handleChangeSpoiler}
|
||||
onSubmit={handleSubmit}
|
||||
text={spoilerText}
|
||||
ref={handleRefSpoilerText}
|
||||
/>
|
||||
<ComposerTextarea
|
||||
advancedOptions={advancedOptions}
|
||||
|
Reference in New Issue
Block a user