* chore: validate and normalize translations in addition to src strings
* fix: globalize lat/lng/acc in LocationPicker
* refactor: extract language picker into component
* refactor: globalized text
* feat: added a script to i18ncli called "checkify" that generates
localization files prepended with a checkmark to help see strings that are
not globalized
* fix: localize date formatting (closes#1622)
Closes#2102
* Implement infinite scroll in Projects
* Styling fixes for empty state in projects; add infinite loading wheel
* Resolve require cycle from ObsFlashList and FlashList shared components
* Order by distance and remove radius for nearby projects fetch
* Code cleanup
* Fix test
* Code cleanup
* Minor tweaks to search API request and results
* TaxonResult TS
* Suggestion TS
* Do not show checkmark for logged out online suggestions
* Update strings.ftl
* From suggestions show bottom sheet on taxon detail
* Refactor updateTaxon
* Add text
* Another text
* Two more texts
* Fix import
* Function stubs
* Use a bulleted text list
* Restyle entire bottom sheet
* Code reorder
* Refactor saveObservation function
* Navigate to login screen for Upload now button
* Add key
* Save obs on press and nav to list
* Code style
* Get updated currentObservation immediately to pass to saveObservation
* Test AICamera with current user
* Show the bottom sheet only for logged out users
* Mock useCurrentUser hook
* Mock useCurrentUser hook
* Mock user
* Mock user
* Use custom FlashList with auto layout disabled in GroupPhotos
* Fixes for grid view in RTL mode
* Fix styling for PhotoCount in RTL
* Standardize ExploreSearchHeader; use BackButton for RTL support
* Styling fixes for filters search header
* Only show one taxon name
* Remove comments, IDs, and quality grade
* Memoize grid and list display taxon name components
* fix: remove border on photoless ObsGridItem
* fix: don't show iconic taxon photo for another taxon
Closes#2088
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* On user profile screen, if routed here with login as param search for user id
* UserText to TS
* Add linkify mention plugin dependency
* Rely on plugin for mention parsing
* Adjust rel
* Add a title attribute to mentions only
* Navigate to profile screen for mentions
* Use props
* Fix some types
* We dont really need this plugin if we check for href includes people link
* Replace user search api call with fetch by login
* Push new profiles on top of the navigation stack every time
* Add error strings
* If there is no user found for this id show error
This can happen I assume when a user changes the login but comments are not updated.
* Use this plugin
* Remove log
* Only react to anchors that have mention as a title
* Update types
* Another inferred type
* Write an integration test for PhotoImport; closes#1430
* Add test for photo importer -> group photos -> obs edit flow
* Remove global image-picker mock
* 1570 Remove attribution for new photo in mediaviewer
* Guarding against photo being undefined
* Migrate AttributionButton to TS
* Remove console.log
* Find by label text instead of test ID
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>
* separates ident body editing into its own state and UI
* stop adding an entire Realm object to nav params, where it gets out of date and causes access bugs
* fixes bug where accessing ObsDetails from MyObs can cause you to return there when returning from TaxonDetails via Explore
* separates BottomSheet handleClose callback so it can respond differently to the sheet closing and the user intentionally closing the sheet
* Suggest ID and Agree bottom sheets both have buttons of equal width with a single primary action
* Disagree sheet prompt refers to the taxon being disagreed with, not the ident taxon
* save taxon to local db when viewed on TaxonDetails
* minor refactors for readability
Closes#2003
Adds internal feedback form that posts to our logging infrastructure.
Also,
* Adds maxLength prop to TextInputSheet w/ UI to show characters remaining
* Adds optional description to TextInputSheet
* Adjusts TextInputSheet input height to fit area left by the keyboard
Closes#1844
---------
Co-authored-by: Ken-ichi Ueda <kenichi.ueda@gmail.com>
* Add new error type for 429; remove unnecessary logs
* Batch API calls for SpeciesSeenCheckmark
* Remove SpeciesSeenCheckmark test
* Revert logging errors
* Use Set for observedTaxonIds
* Add comments around logger.info statements
* Merge linting update
* More fixes from code review
* Switch to non-authenticated useQuery for fetching taxon ids seen by X user id
* Fix tests
* Convert web view components to typescript
* Basic tests for URL handling in FullPageWebView
* Allowlist of domains in FullPageWebView
* Open links in browser in most situations
* Allow FullPageWebView to handle mailto links
* Throw errors if FullPageWebView is about to leak a JWT
* Restore FullPageWebView functionality to signup screens
Closes#1803Closes#1934
* Get a few mocks working in __mocks__ folder
* Move more mocks into __mocks__
* Move mocks
* Move zustand mock
* Add more mocks to __mocks__
* More mocks
* Move more files to __mocks__ and audit existing mocks
* Mock react navigation in __mocks__
* Restore test to help with imports after jest env torn down
* Add fake timer to integration test with userEvent
* Add RN paper mock
* Write some failing navigation tests for MyObs navigation
* Add one more failing test to check for empty screen after all obs are deleted
* Update what happens on blur
* Changes to focus effect
* Revert "Changes to focus effect"
This reverts commit c779504cdf.
* Test: toolbar status reset when user leaves screen
* Unmock useFocusEffect in Jest; fix tests
* Minor nav mocking updates
* Fix import
* Fix previous state in which it was never really allowed to sleep again after
upload finished
* Rename `uploadObservations` to `startUploadObservations` to accurately
describe what it does
* Minor improvements in ts typing
* Don't overwrite description in Suggestions/TaxonSearch; closes#1913
* Fix TS
* Remove unused code related to adding/editing comments in Suggestions/TSearch
* Remove test about showing comments on Suggestions
* realm TS
* provider/contexts TS
* todo
* useIconicTaxa TS
* Refactor taxa list into component
* Use TaxaList for taxon search screen
* Refactor render decision
* Use flex 1 container instead of footer
* Show offline notice for query without results
Refetch taxa when going back online
* Update required because of useIsConnected
* Await typing in test
* Mock useIconicTaxa
* Add tests to taxon search
* emitUploadProgress TS
* createUTFPosition TS
* convertScores TS
* Add field type
* Fix imports
* Customize back button; move icon assets into our image dir
* Fix ContextHeader with updated back button
* Fix styling around back buttons
* Fix taxon details header
* Test fix
* Fix signed in e2e test
Solves the problem of Explore changing the region when applying a taxon filter
on top of an existing map area or nearby filter, but also adds similar
functionality whenever the observation bounds change, e.g. for a user
filter.
* Change connectivity url to ping inat; remove unnecessary useIsConnected hook; closes#1770
* Ensure inaturalist.org/ping is being pinged
* Fix e2e tests by using isConnected, not isInternetReachable
* Use DisplayTaxonName as component in Trans to show DisagreementText
* Use DisplayTaxonName for top of disagree sheet
* Use DisplayTaxonName styling in radio button labels
* Remove italic from disagree text
* Add testing for DisplayTaxonName with plain text and scientific name only
* Add reset button to set user to null
* Update type
* Update project to be null with reset button
* Reset button to set taxon to null
* Fix test for null now
* Project can also be null now
* Refactor into useReducer
* Use reducer for Suggestions
* Offline working
* Progress on getting location permissions button to work as expected
* Code improvements
* Fix photo deletion test
* Fix AICamera nav test
* Ensure suggestions location permission uses location immediately
* Loading wheel fixes
* Fix photo deletion test
* Use online result to advance to obsedit in PhotoDeletion
* Fix test by using online mock
* Fix Suggestions test & create test for online suggestions with location
* Fetch location according to toggle
* Update tests
* Show loading & remove prev queries when toggling location
* Fix loading test