* Refactor upload code into hook and zustand slice
* Create a single source of truth for toolbar and individual progress
* Fix unit tests
* Fix more tests
* Continue trying to simplify upload progress and status code
* Continued overhaul of upload code
* Fix exclamation point in Toolbar
* Fix total toolbar progress
* Fix tests
* Update snapshots
* Code cleanup
* Update MyObs test
* Fix most tests by not deleting realm
* Keep attempting to make toolbar text clear in subsequent tests
* Mock Zustand and reset state after all tests
In theory this should make testing with Zustand simpler. The real kicker is
that resetting state will fail if we're not careful about manually replacing
nested objects in Zustand state updates.
* Bugfix: removeAllFilesFromDirectory works with File objects, not raw paths
* Update status text when uploads canceled
* Only show red exclamation rotating icon after all uploads attempted
* Fix progress bar with zustand nested object
* Fix toolbar progress
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* UploadStatus component
* Added UploadStatus to SharedComponents/index.js
* Change upload complete icon and color
* QualityGradeStatus accessibility labels
* Saved Observation Animation for UploadStatus
* Changed widths of component
* Unit test for UploadStatus
* Unit test and snapshot for UploadStatus
* Update snapshot tests
* Changes requested, accessibility labels for UploadStatus progress, accessibility tests
* Update snapshot tests
* Testing updated snapshot test
* Fix style
* And again
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>