about summary refs log tree commit diff
path: root/app/javascript/flavours/glitch/features/composer/index.js
diff options
context:
space:
mode:
authorThibaut Girka <thib@sitedethib.com>2018-08-30 11:46:45 +0200
committerThibG <thib@sitedethib.com>2018-08-30 13:20:37 +0200
commitc20b27a9f44b69756624d7a15a52187d0486f03f (patch)
tree5afe055d047c255c0221f78808fa6f06c7fb6846 /app/javascript/flavours/glitch/features/composer/index.js
parent1544ac4e2798e969cb9d6d14a361f90517726cfc (diff)
Restrict querySelectorAll to the upload form component
Diffstat (limited to 'app/javascript/flavours/glitch/features/composer/index.js')
-rw-r--r--app/javascript/flavours/glitch/features/composer/index.js17
1 files changed, 13 insertions, 4 deletions
diff --git a/app/javascript/flavours/glitch/features/composer/index.js b/app/javascript/flavours/glitch/features/composer/index.js
index b823f966f..bc409f0a3 100644
--- a/app/javascript/flavours/glitch/features/composer/index.js
+++ b/app/javascript/flavours/glitch/features/composer/index.js
@@ -222,7 +222,7 @@ const handlers = {
 
   //  Submits the status.
   handleSubmit () {
-    const { textarea: { value } } = this;
+    const { textarea: { value }, uploadForm } = this;
     const {
       onChangeText,
       onSubmit,
@@ -249,9 +249,11 @@ 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 (inputs.length == media.size && firstWithoutDescription !== -1) {
-        inputs[firstWithoutDescription].focus();
+      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) {
@@ -259,6 +261,11 @@ const handlers = {
     }
   },
 
+  //  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