Prevent creation of button react view with the same componentId (#5687)
When updating buttons with mergeOptions, existing custom buttons are unmounted and then recreated. This commit adds an optimisation which prevents the react components from being recreated.
To avoid unnecessary recreation, add an `id` to the component. If an existing react view is found for that id, it will be reused.
Fix BottomTabs background color changing to white background sometimes
For some reason, AHBottomNavigation has two background color properties - backgroundColor and defaultBackgroundColor. Sometimes the default background color is applied, which causes the BottomTabs to be colored white.
Closes #5533
* Migrate project to workspace
This commit moves all unit tests to the playground workspace
* Fix ios unit tests
* Build pods before testing
* Build typescript before running iOS tests
* Remove xcode 10 support
Dismiss presented modals and clear the component store on reloading (#5682)
* Dismiss presented modals and clear the component store on reload
* Detach all overlays on react reload
* Move synchronous dismissing modals to modalManager
* Fix iOS unit tests
For some reason layout direction isn't propagated to subviews correctly in the Wix app.
This commit is mostly a workaround, it sets the layout direction on the ViewGroup containing TopBar buttons
so that they appear in the right order in RTL.
Remove component if title is defined in mergeOptions (#5634)
When mergeOptions was called without a title component, existing component was undesirably removed.
This commit changes how component is removed when mergeOptions is called. It will now be removed if a component is not defined and title is defined in mergeOptions.
Fixes #5628
This new updateProps command allows to update props for a component registered with Navigation.registerComponent.
The updated props are handled by shouldComponentUpdate and componentDidUpdate lifecycle methods.
This commit builds upon the work done in 291f16177d and is a breaking change.
Allow to update props for a specific component (#5612)
This commit adds support to update props of screen or custom button/title via the mergeOptions api.
```js
Navigation.mergeOptions('myComponentId', {
passProps: {
text: 'new value'
}
});
```