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.
## What this PR is about?
Finally all strict rules are enables for TypeScript compiler! 🎉 Basically previously `noImplicitAny` was turned off but now it plus all strict rules are turned ON! 💋
## Some highlights of the changes
- `Element` renamed internally to `SharedElement` to make more sense what is it
- `LayoutTreeParser`'s responsibility is now to do all `id` related stuff. Previously it was spread between `LayoutTreeCrawler` and `LayoutTreeParse` so it is more simple now
- clean up a lot of tests because they were testing duplicate stuff that was covered by other tests already
- removed all usages of `static get options` and replaces them with `static options`. This is how it is in the docs plus you cannot have `static get options(passProps)` because it is impossible to have getter with parameters.
## Goal of this PR
The goal of this PR is to make `OptionsProcessor.ts` great again 🇺🇸 . To me it was total mess including tests.
## What was wrong or funky?
1. the tests tested if React Native's `processColor` color works as it should even though react native has [multiple tests for this](https://github.com/facebook/react-native/blob/master/Libraries/StyleSheet/__tests__/processColor-test.js). Aka we don't have to test React Native's functions :D
2. `LayoutTreeCrawler.test.ts` was testing `OptionsProcessor`s functionality so it was removed now
3. Lots of small things since this was done before putting `noImplicitAny` to true so it wasn't made TypeScript in mind
## Result
Now `OptionsProcessor.ts` should be
1. code way more clear
2. tests are testing only things that they should
3. tests are written in clear way
4. it is easy to see from the tests what the whole function does
5. type safe for TypeScript `noImplicitAny` (when we actually turn it on)
* 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
* created RNNNavigationOptions
* created RNNRootViewControllerTest and added a test for the topBarBackgroundColor style
* working
* process navigationOptions colors
* created a test for new RNNRootViewController functionality
* changed RNNRootViewController to init with name, navigationOptions and container id, instead of node
* changed RNNRootViewController to get a new type - RNNavigationOptions
* refactored statusBarHidden test and implementation, all tests pass
* added setup to RNNRootViewControllerTest.m and refactored tests
* added test for title and implemented static title
* minor fixes
* removed redundant eslint config