Skip to content

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Dec 16, 2022

Mend Renovate

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
react-native-web ~0.15.5 -> ~0.18.0 age adoption passing confidence

Release Notes

necolas/react-native-web

v0.18.10

Compare Source

v0.18.9

Compare Source

v0.18.8

Compare Source

v0.18.7

Compare Source

v0.18.6

Compare Source

v0.18.5

Compare Source

v0.18.4

Compare Source

v0.18.3

Compare Source

v0.18.2

Compare Source

v0.18.1

Compare Source

v0.18.0: 0.18

Compare Source

Breaking changes

  • Browser support has been reduced. Changes as follows: Safari 10.1+, Edge (Chromium), no IE, no legacy Android browser.
  • Styles are inserted on module eval, not component render. This is needed to account for changes to rendering in React 18.
  • Style sheets rendered on the server will now include styles from all the eval-ed modules, rather than only the styles produced by the initial render.
  • StyleSheet.create() is now the identify function, returning the input style objects. Previously, it replaced styles with numeric ids. This improves compatibility with React Native, but accessing the returned style objects at runtime is still not recommended as it can prevent static extraction to CSS. (#​2068)
  • StyleSheet.getSheet() can be used on the server to retrieve the current style sheet as a CSS string. (#​2196)
  • I18nManager is now a mock API included only for compatibility with React Native. The ability to flip left/right properties or values has now been removed entirely (use start/end instead). See below for new localization APIs.
  • Inline styles are no longer automatically vendor-prefixed. This improves inline style performance and discourages use of inline styles. This should have little effect in practice if your app is predominantly using StyleSheet.create().
  • The deprecated accessible, accessibilityState, and accessibilityValue props have been removed.
  • The :focus-visible polyfill has been removed, as by default modern browsers no longer show focus rings for pointer interactions.
  • VirtualizedList, FlatList, and SectionList vendor components have been updated to match latest React Native. (#​2241) Thanks to @​DavidRieman.
  • The legacy jest preset and snapshot serializer has been removed from the npm package.
  • The unstable_createElement API has changed. Children are no longer accepted as the 3rd argument, they must be included in the props as the 2nd argument. The 3rd argument is now an options object with a field to set the expected writing direction ({ writingDirection }).

New features

  • Localized LTR/RTL layouts can now be nesting to arbitrary depths simply by setting the dir or lang prop on a component. By default, layouts are rendering RTL. To render RTL you must set dir="rtl" on an outer element rendered by React.
  • Localized LTR/RTL layouts can be switched dynamically at runtime.
  • useLocaleContext is a new export API. Use it to query a component's locale and writing direction context for fine-grained control over localized layout.
  • Rendering into multiple windows and shadow roots in now supported. (#​1517, #​2138)
  • Extraction to static CSS and consumption of external CSS is now possible but not yet recommended. The StyleSheet runtime can consume any styles that match an expected format, but StyleSheet.flatten cannot work with extracted styles. (See below for more details.)

Fixes

  • Fixes static and dynamic shortform / longform deduplication. (#​2007)
  • Display the focus ring on CheckBox and Switch elements. (#​2242)
  • Prevent href navigation for disabled Pressables and Touchables. (#​2299)
  • Linking.openURL supports target value. (#​2277)

Notes

StyleSheet runtime

StyleSheet has been rewritten to better separate the runtime from the compiler. The performance of the new merging runtime is on par with using css-modules. The core runtime is a standalone package called styleQ; refer to the styleQ documentation for more details.

image

The performance of inline styles has also been significantly improved, although StyleSheet still has to perform extra work to transform non-standard React Native styles and polyfill logical styles.

image

The StyleSheet import is now a standalone module. StyleSheet itself is a function that can be called to resolve styles to DOM className and style values, e.g.,

const [ className, inlineStyle ] = StyleSheet([ styles.root, prop.styles ])
StyleSheet extraction

One of the benefits behind the new architecture is that StyleSheet can resolve compiled styles that conform to the expected format, whether they are produced by the built-in compiler or an external source. However, this is not yet recommended, as explained below.

Style compilers must produce annotated objects that are treated as class name maps, and classes are de-duplicated based on whether they share the same key, e.g.,

{ $$css: true, display: 'display-class', opacity: 'opacity-class' }

This is the first step towards allowing 3rd party tools to extract styles to static CSS files, and optionally dropping the client-side compiler, without needing to integrate deeply with the StyleSheet runtime or having to modify props/prop values in the source code, i.e., only the StyleSheet.create() call needs transforming by the compiler.

The existence of the StyleSheet.flatten() API is a problem for build-time compiling of some styles. Components that flatten styles (e.g., Animated, Image) expect to be able to work with the source styles, and use the source values at runtime. A compiler that aims to extract all styles and have no runtime transform would also need to disallow the use of StyleSheet.flatten() entirely. A future release of React Native for Web may remove use of StyleSheet.flatten from internal implementations, but cannot prevent this API from being used in product code or 3rd party packages.

v0.17.7

Compare Source

v0.17.6

Compare Source

v0.17.5

Compare Source

v0.17.4

Compare Source

v0.17.3

Compare Source

v0.17.2

Compare Source

v0.17.1

Compare Source

v0.17.0

Compare Source

Accessibility improvements and breaking changes to unstable APIs.

Breaking changes

  • Remove special treatment of elements with accessibilityRole="menuitem". It no longer adds elements to the tab flow.
  • Remove anchor element inference from View and Text with accessibilityRole="link". Only requires addition of href prop.
  • Remove unstable_createElement element-type inference using href. Fixes use with svg elements.
  • Remove unstable_createElement keyboard shim for onClick. It no longer invokes onClick during onKeyDown for keyboard interactions on elements that are not natively interactive.

Fixes

  • Fix Pressable support for keyboard interactions if element is unmounted during interaction.
  • Remove unnecessary CSS reset for input number spin buttons.
  • Fix ProgressBar & Switch rendering in Windows High Contrast mode
  • Text preserves white-space if numberOfLines={1}.

v0.16.5

Compare Source

v0.16.4

Compare Source

v0.16.3

Compare Source

v0.16.2

Compare Source

v0.16.1

Compare Source

v0.16.0: 0.16

Compare Source

This release includes Flow type exports, updates vendored modules, and miscellaneous bug fixes.

Breaking changes

  • Animated & VirtualizedList have been updated from React Native.
  • Dimensions has changed the source of window dimensions and works more reliably in Safari.
  • NativeEventEmitter no longer inherits from EventEmitter and does not include the removeSubscription method.

New features


Configuration

📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate. View repository job log here.

@marcocesarato marcocesarato merged commit 8d576a5 into master Dec 16, 2022
@renovate renovate bot deleted the renovate/react-native-web-0.x branch December 16, 2022 16:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

2 participants