forked from treehouse/mastodon
Restrict querySelectorAll to the upload form component
parent
1544ac4e27
commit
c20b27a9f4
|
@ -222,7 +222,7 @@ const handlers = {
|
|||
|
||||
// Submits the status.
|
||||
handleSubmit () {
|
||||
const { textarea: { value } } = this;
|
||||
const { textarea: { value }, uploadForm } = this;
|
||||
const {
|
||||
onChangeText,
|
||||
onSubmit,
|
||||
|
@ -249,16 +249,23 @@ const handlers = {
|
|||
// Submit unless there are media with missing descriptions
|
||||
if (mediaDescriptionConfirmation && onMediaDescriptionConfirm && media && media.some(item => !item.get('description'))) {
|
||||
const firstWithoutDescription = media.findIndex(item => !item.get('description'));
|
||||
const inputs = document.querySelectorAll('.composer--upload_form--item input');
|
||||
if (uploadForm) {
|
||||
const inputs = uploadForm.querySelectorAll('.composer--upload_form--item input');
|
||||
if (inputs.length == media.size && firstWithoutDescription !== -1) {
|
||||
inputs[firstWithoutDescription].focus();
|
||||
}
|
||||
}
|
||||
onMediaDescriptionConfirm();
|
||||
} else if (onSubmit) {
|
||||
onSubmit();
|
||||
}
|
||||
},
|
||||
|
||||
// Sets a reference to the upload form.
|
||||
handleRefUploadForm (uploadFormComponent) {
|
||||
this.uploadForm = uploadFormComponent;
|
||||
},
|
||||
|
||||
// Sets a reference to the textarea.
|
||||
handleRefTextarea (textareaComponent) {
|
||||
if (textareaComponent) {
|
||||
|
@ -365,6 +372,7 @@ class Composer extends React.Component {
|
|||
handleSecondarySubmit,
|
||||
handleSelect,
|
||||
handleSubmit,
|
||||
handleRefUploadForm,
|
||||
handleRefTextarea,
|
||||
handleRefSpoilerText,
|
||||
} = this.handlers;
|
||||
|
@ -455,6 +463,7 @@ class Composer extends React.Component {
|
|||
onRemove={onUndoUpload}
|
||||
progress={progress}
|
||||
uploading={isUploading}
|
||||
handleRef={handleRefUploadForm}
|
||||
/>
|
||||
) : null}
|
||||
<ComposerOptions
|
||||
|
|
|
@ -17,12 +17,13 @@ export default function ComposerUploadForm ({
|
|||
onRemove,
|
||||
progress,
|
||||
uploading,
|
||||
handleRef,
|
||||
}) {
|
||||
const computedClass = classNames('composer--upload_form', { uploading });
|
||||
|
||||
// The result.
|
||||
return (
|
||||
<div className={computedClass}>
|
||||
<div className={computedClass} ref={handleRef}>
|
||||
{uploading ? <ComposerUploadFormProgress progress={progress} /> : null}
|
||||
{media ? (
|
||||
<div className='content'>
|
||||
|
@ -55,4 +56,5 @@ ComposerUploadForm.propTypes = {
|
|||
onRemove: PropTypes.func.isRequired,
|
||||
progress: PropTypes.number,
|
||||
uploading: PropTypes.bool,
|
||||
handleRef: PropTypes.func,
|
||||
};
|
||||
|
|
Loading…
Reference in New Issue