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.
Break all the PRs :(
iOS and Android code base used different naming conventions - this commit aims to unify naming conventions. I probably missed a few properties here and there so this will be an ongoing effort.
* bind viewController to presenters using bindViewController
* Merge options to the specific provided layout
* Moved custom titleView creation to RNNRootViewController
* Moved default options to presenters, moved options applying to presenters, resolved options in RNNOptionsResolver
* Fixes merge options
* Fixes topBar transition on pop
* Prevent titleView creation when react titleView exists
* Fixed unit tests
* Options refactor WIP
* Detach applied options from DTO - WIP
* Added option types and option parsers
* Unit test passes
* Added presenters for each parent type
* Fixes unit tests
* Rename StringParam to Text, changed bottomTabs.drawBehind and topBar.drawBehind default to false
* set layout.backgroundColor default to white
* Added unit tests for RNNViewControllerPresenter
* Set layout.backgroundColor default nil
* Fixes buttons color missing options
* Fix unit test
* fix button color parsing
* Moved default options to presenters
* default options fixes
* Fixes e2e
* Fixes unit tests
* Resolve child options on childWillAppear
* Recrusively setDefaultOptions on rootViewController tree
* Fixes default values
* Fixes tests
* Revert "merging buttons fix"
This reverts commit 74077bbc55.
* Revert "fix undefined buttons"
This reverts commit e3b4d15a06.
* Revert "fix e2e"
This reverts commit 05b3f5808f.
* Revert "Handle merge buttons style"
This reverts commit 9c705402eb.
* Add background component with MATCH_PARENT height
* temporary solution for merging button color
This commit introduces two temporary options to control button colors
* rightButtonColor
* leftButtonColor
These options can be used to color buttons. Colors defined in buttons take
precedence over these two options.
* Get buttonColor options from resolved options
* leftButtonColor & rightButtonColor support - iOS
* Disabled color
* disabled buttons color support
* Rebase fixes
* empty commit
* pass props for topBar background component
* refactored custom components
* pass props for topBar background component
* refactored custom components
* refactored RNNOptions object
* Use margin to control component position relative to TopBar
RelativeLayout rules caused excessive CPU usage due to issues with RN's
keyboard detection mechanism (based on global layout listener)
* Skip custom transition e2e on Android
* Improved the clarity of the top-level API doc (#2984)
I clarified some of the language here so that it is easier for the beginner to understand. (It was a little bit awkward before)
* Increase gradle daemon process memory
* Disable Orientation test on Android
* Fix SideMenu e2e
* Fix popTo
* Use margin instead of RelativeLayout rules to align component to BottomTabs
Rules caused excessive CPU usage due to RN issue with global layout listener
and keyboard visibility detection.
* Update README.md
for triggering build
* Update README.md
* Consolidate pop and animatePop
* Update top-level-api.md ... more copyediting. (#3002)
Further clarification of some of the top level API stuff.
* popTo animates top screen
* Refactor component options on Android
* Stop processing passProps from options
* removed comments