This is not recommended by react-navigation, because even though toBeOnTheScreen makes sure the components are in the tree it does not mean they are visible to the user. For example, in terms of navigation a previous screen is still i the tree but not visible to the user in the app.
I spent around a day trying to figure out why the isVisible check stopped working, and still have no clear answer.
Testing in the actual app shows that all of those flows are still working as expected, so it is a test-environment-only problem.
My suggestion would be to re-visit this problem after we have updated RN to latest, and testing related libraries to latest versions.
* Log app version on start
This is helpful for log files sent in from users, to see what version of he code they were actually running while errors happened.
* Add some types
* Import as types
* Remove unused param
* Update types
* Add string
* Update strings.ftl
* Add explanatory text to login screen if logging in again
* Add TODO
* Define new error class
* Throw a RecoverableError if trying to upload without token
* Do not make a new Error if caught. Instead re-throw the one caught.
This preserves the RecoverableError type if thrown.
* Update string
* Add to return info of function that handles errors
* Recover from an error that login again might fix
By sending the user to the login screen. In case of a multi-observation upload we stop the current queue because subsequent observations will also error out (and send one navigation event each).
* Update errorHandling.test.js
* Revert "Add TODO"
This reverts commit 57437f1ece.
* Add unit tests for recovery options
* Update import
* Import realm models as types
* Remove unused import
* Add function param types
* Add function param types
* Rename param for consistency
* Remove unused function param
* Type param
* Update type
* Add TODO
* Import function param type
* File rename without change
* Update imports
* Add some fct types
* Add fct param types
* Add function param types
* Update ObservationPhoto.ts
* Remove unused param
* Type fct param
* Add type
* Remove unused param
* Update comment
* Add fct param type as accessed by local context
* Add types from what is accessed in function
* Add types
* Remove unused types
* Add basic type, as is used in local context
* Bring require statement back
* Import other function param types
* Add property types
* Fix wrong extends
* Assert inputs and outputs for mapping a local observation photo to server action
* Update unit tests for errors
* Rename file
* Update imports
* Request all observation fields again for observations loaded from notifications
* add back user fetch field in notifications
* Also fetch login to show observation owner on the others tab
---------
Co-authored-by: Angie Ta <angie@inaturalist.org>
* MOB-711 - add location for better IDs change
* Various fixes according to PR feedback
* Make button fill all available space
* Change padding to margin
---------
Co-authored-by: Johannes Klein <johannes.t.klein@gmail.com>