Ensure requests to fetch observations that are in flight at the time an
observation is deleted to not re-create or overwrite the deleted observation.
Closes#545
* Refactor to boolean prop for white or gray
* Rename prop
* Add component for comments count
* Reorder strings
* Use CommentsCount
* Add identifications count component
* Add snapshot test for ActivityCount
* Add tests TODO for component
* Updated with new icons
* Add snapshot tests
* Update ActivityCount.test.js.snap
* Unit test for count text
* Remove testing comments count in ObsList test
* Update with changes from main
* Update IdentificationsCount.test.js.snap
* Remove components from ObsStatus
* WIP: very rough start at pulling state up into a container for MyObservations
I made a parallel MyObservations component and container so ObservationViews
can still be used as a working reference, but the ultimate goal here is to
focus MyObservations on presentation, and pull state and other business logic
up into a container component. This should make MyObservations a bit more
testable and clean up a very large and confusing file.
I'm also trying to move away from a generalized representation of observations
on all screens, which is why I want to name it MyObservations and not
ObservationViews. MyObservations has a lot of unique functionality that we
won't need elsewhere, and we can modularize stuff when we need to use it in
multiple places.
* UI updates for header, toolbar, empty component
* Add pressable component and login sheet
* UI improvements; get infinite scroll working
* UI improvements & additions for empty screen & bottom sheet
* Show login sheet when a user presses sync but is not logged in
* Fix backdrop close for AddObsModal
* Move UI elements to MyObservations
* Fix unit tests for MyObservations
* Fix for login sheet
* Set header height to a different height on Android to account for safe area
* Fix failing tests & rerender of user icon in navbar
* Remove scientific name from DisplayTaxonName to match Figma UI
* Set height above toolbar dynamically for sticky toolbar
* Add prop to display or hide second name in DisplayTaxonName
* Use RN styling to style grid view for MyObs flatlist
* Fix failing project obs test
* Create separate ToolbarContainer to separate presentation from logic; fix upload count
* Merge main and show onboarding based on user's total obs count
* Fix display taxon name styling and remove header fade on iOS
* Add header text for 0 observations, logged out state
* Update infinite scroll to 50 obs at a time; make loading wheel show faster
* Add uploaded status to toolbar
* Apply bandaid fix to stop Android from crashing on start
* Start adding new icons to MyObs
* Add circular progress; show upload icons at correct times during upload
* Add disabled props for accessibility state
* Fix tests; update snapshots
* Code cleanup
* Code cleanup & add inaturalist icon
* Fix merge conflict and add icon
* Add inaturalist icon
* Fix navigation to obs list and toolbar status when upload completes
* Move showLoginSheet code to MyObsContainer
* Fix toolbar status text
* Sync toolbar with upload status progress
* Clear toolbar after nav
* Tests passing
* Update e2e test
* Target login button in e2e tests
* Fix failing e2e tests with new testID for login button
* Update button snapshot to include new testID
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* Fix double android back button
* Fix double android back button
* Remove back button from certain tab screens
* Remove back button from certain tab screens
* re-add back btn to obs detail
This uses an npm package to convert SVGs into an icon font, allowing us to
not step on each others' toes when adding new icons in branches and
simplifying the icon addition process. It also allows us to track changes to
the icons, and embed them directly as SVGs if we need to.
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
* E2e action step to test if secrets are given
* Comment out actual build steps
* Revert "Comment out actual build steps"
This reverts commit 02c7dbcb0e.
* Change name
* Update e2e_android.yml
* Run workflows on pull requests
* Remove comment
* Create tab navigator
* Add add obs button
* lint
* Wire up routes
* Fix login
* Add keys
* Fix delayed state bug
* Lint
* space parens
* Add details to tab nav
* Lint
* re-add back btn
* Rebase off main
* Fix format
* Fix back button
* Remove unused change
* Replace lowercase folder
* I don't know why that is needed
---------
Co-authored-by: Johannes Klein <johannes.t.klein@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>
* 483 create PhotoCount component
* 483 PhotoCount refinement
* 483 add PhotoCount component unit test
* 483 add shadow to PhotoCount component
* Use Body3 component instead of SVG text
* 483 fix unit tests
* Find component by text rather than by ID
* Remove unused test id
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
Somehow many of the icon names in Fontastic were changed. This changes them
back to match what we use on the web and what we use in the main branch of
this repo, with a few exceptions to attempt to make names more consistent.
Also updated the README in the hopes of avoiding situations like this in the
future.
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
* Add confirmation modal for discard photos in standard camera
* Add confirmation modal for discard photos in standard camera
* Fix tests
* Make requested changes
* Add close via overlay
* Add gradient and shadow to add obs button
* lint
* Fix tests
* Rebase main
* Switch drop shadow color
* Move drop shadow style into styles folder
* Remove intermediate View
* Delete getShadowStyle.js
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>