diff --git a/src/ContentMessages.js b/src/ContentMessages.js
index ee3e8f1390..2d58622db8 100644
--- a/src/ContentMessages.js
+++ b/src/ContentMessages.js
@@ -425,19 +425,25 @@ export default class ContentMessages {
}
const UploadConfirmDialog = sdk.getComponent("dialogs.UploadConfirmDialog");
+ let uploadAll = false;
for (let i = 0; i < okFiles.length; ++i) {
const file = okFiles[i];
- const shouldContinue = await new Promise((resolve) => {
- Modal.createTrackedDialog('Upload Files confirmation', '', UploadConfirmDialog, {
- file,
- currentIndex: i,
- totalFiles: okFiles.length,
- onFinished: (shouldContinue) => {
- resolve(shouldContinue);
- },
+ if (!uploadAll) {
+ const shouldContinue = await new Promise((resolve) => {
+ Modal.createTrackedDialog('Upload Files confirmation', '', UploadConfirmDialog, {
+ file,
+ currentIndex: i,
+ totalFiles: okFiles.length,
+ onFinished: (shouldContinue, shouldUploadAll) => {
+ if (shouldUploadAll) {
+ uploadAll = true;
+ }
+ resolve(shouldContinue);
+ },
+ });
});
- });
- if (!shouldContinue) break;
+ if (!shouldContinue) break;
+ }
this._sendContentToRoom(file, roomId, matrixClient);
}
}
diff --git a/src/components/views/dialogs/UploadConfirmDialog.js b/src/components/views/dialogs/UploadConfirmDialog.js
index e7b22950d6..7e682a8301 100644
--- a/src/components/views/dialogs/UploadConfirmDialog.js
+++ b/src/components/views/dialogs/UploadConfirmDialog.js
@@ -49,6 +49,10 @@ export default class UploadConfirmDialog extends React.Component {
this.props.onFinished(true);
}
+ _onUploadAllClick = () => {
+ this.props.onFinished(true, true);
+ }
+
render() {
const BaseDialog = sdk.getComponent('views.dialogs.BaseDialog');
const DialogButtons = sdk.getComponent('views.elements.DialogButtons');
@@ -85,6 +89,13 @@ export default class UploadConfirmDialog extends React.Component {
;
}
+ let uploadAllButton;
+ if (this.props.currentIndex + 1 < this.props.totalFiles) {
+ uploadAllButton = ;
+ }
+
return (
+ >
+ {uploadAllButton}
+
);
}
diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json
index 53fd82f6f2..e167659621 100644
--- a/src/i18n/strings/en_EN.json
+++ b/src/i18n/strings/en_EN.json
@@ -1249,6 +1249,7 @@
"Upload files (%(current)s of %(total)s)": "Upload files (%(current)s of %(total)s)",
"Upload files": "Upload files",
"Upload": "Upload",
+ "Upload all": "Upload all",
"This file is too large to upload. The file size limit is %(limit)s but this file is %(sizeOfThisFile)s.": "This file is too large to upload. The file size limit is %(limit)s but this file is %(sizeOfThisFile)s.",
"These files are too large to upload. The file size limit is %(limit)s.": "These files are too large to upload. The file size limit is %(limit)s.",
"Some files are too large to be uploaded. The file size limit is %(limit)s.": "Some files are too large to be uploaded. The file size limit is %(limit)s.",