* 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