AppRegistry.runApplication uses `ReactDOM.createRoot` by default, but
the `render` export uses the legacy `ReactDOM.render`. This patch makes
those 2 APIs consistent.
It also makes some adjustments to the `createSheet` internals to more
reliably implement and test style sheet replication within ShadowRoot's
and iframes.
Fix#2612
On web, the cursor jumps to the start of the input when secureTextEntry is toggled.
Preserve and restore previous selection after secureTextEntry is toggled.
Close#2576
Update keyboard handling code to avoid calling preventDefault for
'keydown' events occuring on a native button element. This was causing
native 'click' event to be cancelled on buttons.
Fix#2560
Fixes `window.height` and `window.width` so that they do not change when
pinch-zoomed. This issue was introduced by #2438 when `documentElement`
measurements were replaced by `visualViewport`.
Close#2520
It fixes the inconsistency between native builds and react-native-web,
where when disabling Pressables and other tappable elements, the
children on native builds are still interactable (swiping, tapping, etc)
but un-interactable in react-native-web. On react-native-web, the
pointerEvents were set to 'none' to address 094bd0e, which causes this
inconsistency.
The solution was to change from 'none' to 'box-none', which maintains
the desired behavior of the original issue and addresses the current.
Close#2536Fix#2391
Cannot pass the result of StyleSheet.flatten to components, as it mixes
dynamic and static (compiled away) style information.
With the way Image is currently implemented, we have to override
'boxShadow' in all cases to avoid the 'shadow*' props being incorrectly
applied as a box-shadow. Once Image is implemented using createElement,
we can disable the 'boxShadow" generation just for Image.
Fix#2527
This patch reorganizes the style compiler so that the 'preprocess' step
is responsible for all the work needed to transform any non-standard CSS
from React Native into a form that can be 'compiled' to rules for the
CSSStyleSheet.
Over time the 'preprocess' step should eventually be unnecessary as
React Native aligns its APIs with CSS APIs. And any external style
compilers should be able to run the 'preprocess' function over the style
input to produce valid CSS as input for the compiler.
* Support logical styles like 'marginInlineStart' and
'insetInlineStart' via polyfills.
* Deprecate non-standard 'marginStart' etc. properties.
Ref #2379