refactor: upload progress calculation #5350
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
Refactored and simplified the speed calculation logic by calculating speed and ETA once using the total uploaded bytes instead of per file. The upload store was also streamlined into a leaner setup-style implementation with private helpers, a simplified data structure, and a unified TypeScript type for uploads. Some logic was moved to components to keep the store holding only data and logic that is shared. Upload progress updates now occur on a fixed 1-second interval to ensure consistent refresh rates. Additionally, some fixes were addressed: starting speed from the first measured value instead of zero for accurate initial reporting, suppressing error notifications for aborted uploads, and counting empty files or folders as 1 byte so their progress is properly tracked.
fixes #5339
Checklist
Before submitting your PR, please indicate which issues are either fixed or closed by this PR. See GitHub Help: Closing issues using keywords.
master
branch.