From 8919fc3243ad6b92ff77b9feeac7cf4527f23374 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Ma=C5=82ecki?= Date: Fri, 28 Feb 2025 01:15:07 -0800 Subject: [PATCH] Set optional ref on View and split View Props (#49725) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/49725 Changelog: [Internal] - Set optional ref on View and split View Props Reviewed By: huntie Differential Revision: D70327820 fbshipit-source-id: 2021125b0aff1497df50c2be73c2ecfc7e8f1157 --- .../Libraries/Components/View/View.js | 2 +- .../Components/View/ViewPropTypes.js | 25 +++++++++++-------- .../__snapshots__/public-api-test.js.snap | 25 +++++++++++-------- 3 files changed, 29 insertions(+), 23 deletions(-) diff --git a/packages/react-native/Libraries/Components/View/View.js b/packages/react-native/Libraries/Components/View/View.js index 97b8ba39152..4f13e1ec49d 100644 --- a/packages/react-native/Libraries/Components/View/View.js +++ b/packages/react-native/Libraries/Components/View/View.js @@ -24,7 +24,7 @@ export type Props = ViewProps; * @see https://reactnative.dev/docs/view */ const View: component( - ref: React.RefSetter>, + ref?: React.RefSetter>, ...props: ViewProps ) = React.forwardRef( ( diff --git a/packages/react-native/Libraries/Components/View/ViewPropTypes.js b/packages/react-native/Libraries/Components/View/ViewPropTypes.js index 2c8b52fc43f..92ebd50093e 100644 --- a/packages/react-native/Libraries/Components/View/ViewPropTypes.js +++ b/packages/react-native/Libraries/Components/View/ViewPropTypes.js @@ -356,17 +356,7 @@ export type ViewPropsIOS = $ReadOnly<{ shouldRasterizeIOS?: ?boolean, }>; -export type ViewProps = $ReadOnly<{ - ...DirectEventProps, - ...GestureResponderHandlers, - ...MouseEventProps, - ...PointerEventProps, - ...FocusEventProps, - ...TouchEventProps, - ...ViewPropsAndroid, - ...ViewPropsIOS, - ...AccessibilityProps, - +type ViewBaseProps = $ReadOnly<{ children?: Node, style?: ?ViewStyleProp, @@ -454,3 +444,16 @@ export type ViewProps = $ReadOnly<{ */ removeClippedSubviews?: ?boolean, }>; + +export type ViewProps = $ReadOnly<{ + ...DirectEventProps, + ...GestureResponderHandlers, + ...MouseEventProps, + ...PointerEventProps, + ...FocusEventProps, + ...TouchEventProps, + ...ViewPropsAndroid, + ...ViewPropsIOS, + ...AccessibilityProps, + ...ViewBaseProps, +}>; diff --git a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap index 877bb176154..490870b95d4 100644 --- a/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap +++ b/packages/react-native/Libraries/__tests__/__snapshots__/public-api-test.js.snap @@ -3633,7 +3633,7 @@ declare export default typeof ReactNativeViewAttributes; exports[`public API should not change unintentionally Libraries/Components/View/View.js 1`] = ` "export type Props = ViewProps; declare const View: component( - ref: React.RefSetter>, + ref?: React.RefSetter>, ...props: ViewProps ); declare export default typeof View; @@ -3927,16 +3927,7 @@ export type ViewPropsAndroid = $ReadOnly<{ export type ViewPropsIOS = $ReadOnly<{ shouldRasterizeIOS?: ?boolean, }>; -export type ViewProps = $ReadOnly<{ - ...DirectEventProps, - ...GestureResponderHandlers, - ...MouseEventProps, - ...PointerEventProps, - ...FocusEventProps, - ...TouchEventProps, - ...ViewPropsAndroid, - ...ViewPropsIOS, - ...AccessibilityProps, +type ViewBaseProps = $ReadOnly<{ children?: Node, style?: ?ViewStyleProp, collapsable?: ?boolean, @@ -3949,6 +3940,18 @@ export type ViewProps = $ReadOnly<{ pointerEvents?: ?(\\"auto\\" | \\"box-none\\" | \\"box-only\\" | \\"none\\"), removeClippedSubviews?: ?boolean, }>; +export type ViewProps = $ReadOnly<{ + ...DirectEventProps, + ...GestureResponderHandlers, + ...MouseEventProps, + ...PointerEventProps, + ...FocusEventProps, + ...TouchEventProps, + ...ViewPropsAndroid, + ...ViewPropsIOS, + ...AccessibilityProps, + ...ViewBaseProps, +}>; " `;