Ensure useAuthenticatedQuery only executes the query when it knows if the user
is signed in or not, and appends that state to the query key so signed in and
signed out results are distinct.
The problem here was that useIconicTaxa was mysteriously returning stale,
signed out results while offline.
Closes MOB-383
* Only reset observation slice at the beginning of the flow, not the end of the flow, so screen doesn't rerender and crash
* Pass in an option to skip resetting slice before navigating
* Pass correct taxonId to TaxonDetails screen
* feat: add text labels to bottom tabs
* fix: treat icon and text as single pressable for screen readers in bottom tabs
* feat: float AddObs button outside of bottom tab bar
Closes MOB-254
---------
Co-authored-by: Kirk van Gorkom <55742+kvangork@users.noreply.github.com>
* refactor: convert UserIcon to TypeScript
* feat: show simple MyObs to signed in user; add user icon & login to header
* feat: show warning and edit button for unuploaded obs w/o basics
* refactor: consolidate ObsEdit navigation logic
* feat: show edit button with circle dots
* refactor: upload UploadQueuedRotatingIcon to the more reusable CircleDots
component
* refactor: upload icons to use more composition and fewer specialized, one-off
components
* fix: bugs in determining if an obs has date and coords
* refactor: extract MyObservationsSimple business logic into container
* refactor: get total obs count from relevant hooks
* feat: show remote species for signed in users
* fix: hide photo count icon when missing basics icon is present
* feat: show banner alerting user when missing location or date
Closes MOB-318
* refactor: convert ExploreProjectSearch to TS and assoc'd TS changes
* feat: use infinite scroll in Explore Filters project search
* feat: show universal search results in Explore project search
This should show the same ranked search results a user would see at
https://www.inaturalist.org/search?source[]=projects
Closes MOB-313
* Update Match screen with new taxon photos, match header, and add'l suggestions list when suggestion is selected
* Code cleanup
* More defensive object equivalence check
* adds "by me" and "not by me" user filter buttons to explore
* remove console log, improve rerenders when excluding current user in species view
* Remove user object from observations in realm, add key prop to ButtonBar, UI fixes
* fixes total results number in species and observation view of explore when NOT BY ME
* bug fix
* Create useSuggestions hook with all online/offline logic for reuse in Match screen
* Show real online/offline suggestions on Match screen
* Code improvements
* Display top suggestion from useSuggestions, not AICamera
Simplified version of MyObs for signed out users with more than 1 obs. Currently only in debug mode.
Also:
* refactor: extract TaxonGridItem into a reusable component
* chore: TypeScript cleanup
Closes MOB-317
* fix: save or discard the observation from the match screen
* feat: add Match header and footer to TaxonDetails from Match
* refactor: rename TaxonDetailsHeader prop controlling right element
* feat: show search from TaxonDetails via Match
Closes MOB-353
Closes MOB-358
Closes MOB-359
* Save TaxonPhoto to realm; display taxon on match screen
* Code tweaks
* Add match screen to navigation after AI camera in debug/default mode
* Fix test and refactor
* Fix issue with infinite renders in useLayoutPrefs
* Update vision-plugin
* useOfflineSuggestion TS
* Use location for prediction from file
* Remove log
* Use plugin function to lookup location and elevation based on h3 cells
* taxonomyRollupCutoff is now done in the plugin on basis of the tops score for a frame
* Fix wrong commit reference. Now references main branch
* Fix has location check to account for 0.0 locations
* Only prop in lat and long
* Add explanation
* Fix: Import vision-plugin function from wrapper file
* Add jest mock for new plugin function
* stop resetting map zoom level on every pinch in Android; state for the region needed to be introduced and updated after each gesture (closes#2529)
* zoom to current location when current location button and current location is not currently in the viewable map area; a callback needed to be called explicitly after animateToRegion() (closes#2555)
* zoom and pan the map when a place search result is chosen in Android; a state for the region needed to be introduced and a callback needed to be called explicitly after animateToRegion() (closes#2593)
* Add functionality for advanced iNaturalist mode
* Fix language settings test by toggling advanced mode on
* Fix e2e tests by adding advanced user toggle
* Fix more tests in Settings with advanced toggle
* feat: add interface mode preference to Settings
* Refactor existing layout preferences so they are all persisted
* Made a new namespace within the layout slice so that all values there will
get persisted without having to add stuff to the persistence code AND we
avoid namespace collisions
* Wrapped layout slice getters and setters in a hook to provide descriptive
names without modifying the underlying values
* Remove duplicate testID that was causing e2e to fail
---------
Co-authored-by: Amanda Bullington <albullington@gmail.com>
* Create ObsDetailsDefaultMode and rearrange items on top of screen
* Move activity, details, and more into three different sections instead of tabs
* Styling cleanup; change Activity name to Community
* Fix scroll to activity item from Notifications
* Add ObsDetailsDefaultMode unit tests
* Show kebab menu on other users' observations
* fixes issues where side by side button text is cut off in different languages and large font sizes.
Refactor to use ButtonBar in all places with side by side buttons. Truncates header in ObsEdit when language text exeeds space to not push kebab menu off screen. Closes#2500.
* update snapshots
* clean up BottomButtons.tsx
* Add sentinel file creation, logging, and deletion logic to AICamera
* Log to server and delete sentinel files after logged; fix location fetch logging
* Use logger.error, not logger.debug, to log to grafana
* Fix#2212 - use physical volume buttons to capture photo
* Fixed tests (mocking VolumeManager)
* Fixed tests (mocking VolumeManager)
* #2212 - physical volume buttons for camera capture - also in AI camera
* #2212 - additional fixes for AI camera
* Update pods
* Update pods
---------
Co-authored-by: Amanda Bullington <albullington@gmail.com>