Submission UI Improvement - File Processing
- Dominant language
- No language data
- Stars
- 0
- Forks
- 0
- PR merge metrics
- No merged PRs in 30d
Description
## The issue
JJ's original comment: When uploading large sequence files (i.e. >1GB), there's nothing indicating that the file is being processed (I assume the hash calculation). After dragging the file into the upload box, nothing shows up. Then, about 30 seconds later, the file suddenly show up in the file list. This problem worsens with how much files I drag into the upload box at the same time. I could also drag the same files during this period of time into the box. Suggest adding a progress bar or a dialog box to stop user interactions, and to indicate processing is happening.
## The Solution
### Move MD5 hashing off the main thread, into a Web Worker.
- [ ] Use a library with chunked/incremental hashing (e.g. spark-md5's incremental ArrayBuffer API) inside a worker, reading and hashing the file in slices instead of one giant buffer.
- [ ] This gets you two things at once: the page stays responsive while hashing runs, and you get real per-chunk progress you can report back to the main thread (postMessage({fileId, percent})), enabling an actual progress bar per file instead of a binary pending/done state.
### UI changes to pair with it, cheapest first
- [ ] Immediate feedback on drop — right now the dropzone (DropZone.tsx) gives no visual change the instant files are dropped. Add a "Processing N files…" state to the drop area itself as soon as onDrop fires, before any hashing completes.
- [ ] Per-row status in the Uploaded Files list — since files already added progressively to oneOrMoreTar once the worker fix is in, show each row as pending → done rather than only appearing once fully processed.
- [ ] Disable further drops while processing — worth checking what disabled is actually wired to on the dropzone; if it doesn't cover "currently hashing," a user could drop more files mid-batch and stack even more main-thread work under the current implementation.
## Next Steps
@leoraba to verify if the solution is valid.
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.