From c04b4a92d1161c46afe855268bce0366c71b68fa Mon Sep 17 00:00:00 2001 From: Jakub Piasecki Date: Mon, 10 Mar 2025 08:40:37 -0700 Subject: [PATCH] Update modal wrapper to be translatable to TypeScript (#49923) Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/49923 Changelog: [Internal] Reviewed By: huntie Differential Revision: D70887822 fbshipit-source-id: 729e91245cfb750cf1de4f4532925ff7263b3d82 --- packages/react-native/Libraries/Modal/Modal.js | 6 +++++- .../__tests__/__snapshots__/public-api-test.js.snap | 6 +++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/packages/react-native/Libraries/Modal/Modal.js b/packages/react-native/Libraries/Modal/Modal.js index 9fa343403d9..cae3aaca9df 100644 --- a/packages/react-native/Libraries/Modal/Modal.js +++ b/packages/react-native/Libraries/Modal/Modal.js @@ -362,6 +362,10 @@ const styles = StyleSheet.create({ }, }); +type ModalRefProps = $ReadOnly<{ + ref?: React.RefSetter, +}>; + // NOTE: This wrapper component is necessary because `Modal` is a class // component and we need to map `ref` to a differently named prop. This can be // removed when `Modal` is a functional component. @@ -369,7 +373,7 @@ function Wrapper({ ref, ...props }: { - ref?: React.RefSetter, + ...ModalRefProps, ...ModalProps, }): React.Node { return ; 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 e1aa943977b..e261a86e198 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 @@ -5985,10 +5985,10 @@ export type ModalProps = { ...ModalPropsAndroid, ...ViewProps, }; -declare function Wrapper({ +type ModalRefProps = $ReadOnly<{ ref?: React.RefSetter, - ...ModalProps, -}): React.Node; +}>; +declare function Wrapper({ ...ModalRefProps, ...ModalProps }): React.Node; declare export default typeof Wrapper; " `;