Skip to content

Commit a38919b

Browse files
committed
fix: time remaining function adjustments
average speed and current speed is set 0 zero, then file is paused, errored or finished.
1 parent d4b2ac6 commit a38919b

File tree

1 file changed

+19
-6
lines changed

1 file changed

+19
-6
lines changed

src/flow.js

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
/**
77
* Flow.js is a library providing multiple simultaneous, stable and
88
* resumable uploads via the HTML5 File API.
9-
* @name
109
* @param [opts]
1110
* @param {number} [opts.chunkSize]
1211
* @param {bool} [opts.forceChunkSize]
@@ -594,12 +593,17 @@
594593
var sizeDelta = 0;
595594
var averageSpeed = 0;
596595
each(this.files, function (file) {
597-
sizeDelta += file.size - file.sizeUploaded();
598-
averageSpeed += file.averageSpeed;
596+
if (!file.paused && !file.error) {
597+
sizeDelta += file.size - file.sizeUploaded();
598+
averageSpeed += file.averageSpeed;
599+
}
599600
});
600-
if (!averageSpeed) {
601+
if (sizeDelta && !averageSpeed) {
601602
return Number.POSITIVE_INFINITY;
602603
}
604+
if (!sizeDelta && !averageSpeed) {
605+
return 0;
606+
}
603607
return Math.floor(sizeDelta / averageSpeed);
604608
}
605609
};
@@ -761,6 +765,8 @@
761765
this.flowObj.fire('progress');
762766
this._lastProgressCallback = Date.now();
763767
if (this.isComplete()) {
768+
this.currentSpeed = 0;
769+
this.averageSpeed = 0;
764770
this.flowObj.fire('fileSuccess', this, message);
765771
}
766772
break;
@@ -922,10 +928,17 @@
922928
* @returns {number}
923929
*/
924930
timeRemaining: function () {
925-
if (!this.averageSpeed) {
931+
if (this.paused || this.error) {
932+
return 0;
933+
}
934+
var delta = this.size - this.sizeUploaded();
935+
if (delta && !this.averageSpeed) {
926936
return Number.POSITIVE_INFINITY;
927937
}
928-
return Math.floor((this.size - this.sizeUploaded()) / this.averageSpeed);
938+
if (!delta && !this.averageSpeed) {
939+
return 0;
940+
}
941+
return Math.floor(delta / this.averageSpeed);
929942
},
930943

931944
/**

0 commit comments

Comments
 (0)