Fix setStackRoot crash when called with the same id (#5154)
When a Stack’s root was set with an id of one of the Stack’s current children, there was a crash
since the wrong elements were removed from the stack.
This commit fixes this by creating a new stack when setStackRoot is called, and destroying all ViewControllers from the previous Stack.
Fixes #5117
* Support RN 0.59
* Fix yellow box detection on Android
* Manually link jsc on iOS in playground app
* Fix android unit tests
* Add JavaScriptCore.framework to iOS unit tests
* Download licenses before unit and e2e tests
* Update gradle-wrapper.properties
Add YellowBoxed back to ReactRootViews before unmount
Apparently, UiImplementation doesn't like it when views disappear from hierarchy unexpectedly.
As yellow boxes are added to all ReactRootViews, we remove them from TopBar components.
When these components got unmounted, UiImplementation tried to remove the yellow box and since it
couldn't find it - it crashed.
This commit simply adds the yellow box before views are unmounted.
Unmount buttons when corresponding screen is unmounted
Currently buttons were unmounted each time a screen was pushed to the stack.
As we're clearing props when screens are unmounted from the prop store - when a screen
was popped to - its buttons's props were undefined.
This commit changes things so that buttons are unmounted when buttons are set
using mergeOptions and when the corresponding screen is unmounted.
* Migrate to jest to support parallel ios simulator from detox
* When e2e lint only ts or js files
* Remove mocha from deps and decrease from 480000ms to 180000ms