diff --git a/change/@office-iss-react-native-win32-8cc96e90-b3d9-43c7-9a01-663777232bf1.json b/change/@office-iss-react-native-win32-8cc96e90-b3d9-43c7-9a01-663777232bf1.json new file mode 100644 index 00000000000..a1f3ac191a5 --- /dev/null +++ b/change/@office-iss-react-native-win32-8cc96e90-b3d9-43c7-9a01-663777232bf1.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "integrate 12/1", + "packageName": "@office-iss/react-native-win32", + "email": "tatianakapos@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/@react-native-windows-automation-channel-4190900e-d505-4fa1-a49f-2e5d49026ef2.json b/change/@react-native-windows-automation-channel-4190900e-d505-4fa1-a49f-2e5d49026ef2.json new file mode 100644 index 00000000000..123af741228 --- /dev/null +++ b/change/@react-native-windows-automation-channel-4190900e-d505-4fa1-a49f-2e5d49026ef2.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "integrate c464b215e", + "packageName": "@react-native-windows/automation-channel", + "email": "tatianakapos@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/change/react-native-windows-537fd685-b9ff-4b3a-b0a0-6aa00a49d729.json b/change/react-native-windows-537fd685-b9ff-4b3a-b0a0-6aa00a49d729.json new file mode 100644 index 00000000000..5ab2d32c2a7 --- /dev/null +++ b/change/react-native-windows-537fd685-b9ff-4b3a-b0a0-6aa00a49d729.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "integrate 12/1", + "packageName": "react-native-windows", + "email": "tatianakapos@microsoft.com", + "dependentChangeType": "patch" +} diff --git a/packages/@office-iss/react-native-win32-tester/overrides.json b/packages/@office-iss/react-native-win32-tester/overrides.json index 2c097d7ffb1..309883ab6c2 100644 --- a/packages/@office-iss/react-native-win32-tester/overrides.json +++ b/packages/@office-iss/react-native-win32-tester/overrides.json @@ -5,7 +5,7 @@ "excludePatterns": [ "src/js/examples-win32/**" ], - "baseVersion": "0.74.0-nightly-20231116-fa89dd68b", + "baseVersion": "0.74.0-nightly-20231201-c30f2b620", "overrides": [ { "type": "patch", diff --git a/packages/@office-iss/react-native-win32-tester/package.json b/packages/@office-iss/react-native-win32-tester/package.json index 91c3265596c..6ff04c02207 100644 --- a/packages/@office-iss/react-native-win32-tester/package.json +++ b/packages/@office-iss/react-native-win32-tester/package.json @@ -19,7 +19,7 @@ "peerDependencies": { "@office-iss/react-native-win32": "^0.0.0-canary.226", "react": "18.0.0", - "react-native": "0.74.0-nightly-20231116-fa89dd68b" + "react-native": "0.74.0-nightly-20231201-c30f2b620" }, "devDependencies": { "@office-iss/react-native-win32": "^0.0.0-canary.226", @@ -30,7 +30,7 @@ "@types/node": "^18.0.0", "eslint": "^8.19.0", "just-scripts": "^1.3.3", - "react-native": "0.74.0-nightly-20231116-fa89dd68b", + "react-native": "0.74.0-nightly-20231201-c30f2b620", "react-native-platform-override": "^1.9.17", "typescript": "^4.9.5" }, diff --git a/packages/@office-iss/react-native-win32/.flowconfig b/packages/@office-iss/react-native-win32/.flowconfig index c9d5a3cb0b3..14895bbccc1 100644 --- a/packages/@office-iss/react-native-win32/.flowconfig +++ b/packages/@office-iss/react-native-win32/.flowconfig @@ -148,4 +148,4 @@ untyped-import untyped-type-import [version] -^0.222.0 +^0.223.0 diff --git a/packages/@office-iss/react-native-win32/overrides.json b/packages/@office-iss/react-native-win32/overrides.json index 600f1718546..a3ead795aa4 100644 --- a/packages/@office-iss/react-native-win32/overrides.json +++ b/packages/@office-iss/react-native-win32/overrides.json @@ -7,19 +7,19 @@ "**/__snapshots__/**", "src/rntypes/**" ], - "baseVersion": "0.74.0-nightly-20231116-fa89dd68b", + "baseVersion": "0.74.0-nightly-20231201-c30f2b620", "overrides": [ { "type": "derived", "file": ".flowconfig", "baseFile": ".flowconfig", - "baseHash": "397a9d59e4415e8758adc635d5e016070e6d85d7" + "baseHash": "172a4663d9243a77e3b35a2d8a5e403fd62062cf" }, { "type": "derived", "file": "src/index.win32.js", "baseFile": "packages/react-native/index.js", - "baseHash": "b658f287732c27fdd28722a8765c3b1b0c1316fa" + "baseHash": "6c91f268c2189f9db74bead7fef1ed262c77586e" }, { "type": "platform", @@ -112,7 +112,7 @@ "type": "derived", "file": "src/Libraries/Components/ScrollView/ScrollView.win32.js", "baseFile": "packages/react-native/Libraries/Components/ScrollView/ScrollView.js", - "baseHash": "6e3e4933173d1f910232f3f46602e2f525127eb5" + "baseHash": "6367cf4ba4637cd8292b68c629cb9d59df99ade1" }, { "type": "platform", @@ -130,7 +130,7 @@ "type": "derived", "file": "src/Libraries/Components/TextInput/TextInput.win32.js", "baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.js", - "baseHash": "d12fe54e9da3be0b1003a5bc18fa3c6d09728564" + "baseHash": "f6742637eda13080bd175a45eb0edbc83fa260c5" }, { "type": "patch", @@ -252,7 +252,7 @@ "type": "derived", "file": "src/Libraries/Image/Image.win32.js", "baseFile": "packages/react-native/Libraries/Image/Image.ios.js", - "baseHash": "bccd20ad47baa18b187bd8eb92b7627135be29fd", + "baseHash": "ba2c259fd454ed0c0f73b82f6390fef8045320ab", "issue": 4320 }, { @@ -306,7 +306,7 @@ "type": "patch", "file": "src/Libraries/Inspector/Inspector.win32.js", "baseFile": "packages/react-native/Libraries/Inspector/Inspector.js", - "baseHash": "03565787cbe09078824ee3fcfc12401085995454" + "baseHash": "db79965ed999c40d6bebaf1860a0921749d54b4f" }, { "type": "patch", @@ -511,7 +511,7 @@ "type": "copy", "file": "src/Libraries/Utilities/useMergeRefs.js", "baseFile": "packages/react-native/Libraries/Utilities/useMergeRefs.js", - "baseHash": "d21cc9b2de5af9f398429e7a03c5f13ea7dc7227" + "baseHash": "1f1ca637132e6e0fe1549ba520d98508269ca2bd" } ] } \ No newline at end of file diff --git a/packages/@office-iss/react-native-win32/package.json b/packages/@office-iss/react-native-win32/package.json index 4f2ab28f349..90dc38c6e9c 100644 --- a/packages/@office-iss/react-native-win32/package.json +++ b/packages/@office-iss/react-native-win32/package.json @@ -30,14 +30,14 @@ "@react-native-community/cli-platform-android": "12.0.0", "@react-native-community/cli-platform-ios": "12.0.0", "@react-native/assets": "1.0.0", - "@react-native/assets-registry": "0.74.0-nightly-20231116-fa89dd68b", - "@react-native/codegen": "0.74.0-nightly-20231116-fa89dd68b", - "@react-native/community-cli-plugin": "0.74.0-nightly-20231116-fa89dd68b", - "@react-native/gradle-plugin": "0.74.0-nightly-20231116-fa89dd68b", - "@react-native/js-polyfills": "0.74.0-nightly-20231116-fa89dd68b", + "@react-native/assets-registry": "0.74.0-nightly-20231201-c30f2b620", + "@react-native/codegen": "0.74.0-nightly-20231201-c30f2b620", + "@react-native/community-cli-plugin": "0.74.0-nightly-20231201-c30f2b620", + "@react-native/gradle-plugin": "0.74.0-nightly-20231201-c30f2b620", + "@react-native/js-polyfills": "0.74.0-nightly-20231201-c30f2b620", "@react-native/metro-config": "^0.73.0", - "@react-native/normalize-colors": "0.74.0-nightly-20231116-fa89dd68b", - "@react-native/virtualized-lists": "0.74.0-nightly-20231116-fa89dd68b", + "@react-native/normalize-colors": "0.74.0-nightly-20231201-c30f2b620", + "@react-native/virtualized-lists": "0.74.0-nightly-20231201-c30f2b620", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", @@ -85,13 +85,13 @@ "just-scripts": "^1.3.3", "prettier": "^2.4.1", "react": "18.2.0", - "react-native": "0.74.0-nightly-20231116-fa89dd68b", + "react-native": "0.74.0-nightly-20231201-c30f2b620", "react-native-platform-override": "^1.9.17", "typescript": "^4.9.5" }, "peerDependencies": { "react": "18.2.0", - "react-native": "0.74.0-nightly-20231116-fa89dd68b" + "react-native": "0.74.0-nightly-20231201-c30f2b620" }, "beachball": { "defaultNpmTag": "canary", diff --git a/packages/@office-iss/react-native-win32/src/Libraries/Components/ScrollView/ScrollView.win32.js b/packages/@office-iss/react-native-win32/src/Libraries/Components/ScrollView/ScrollView.win32.js index a650c003de4..5370f189dcd 100644 --- a/packages/@office-iss/react-native-win32/src/Libraries/Components/ScrollView/ScrollView.win32.js +++ b/packages/@office-iss/react-native-win32/src/Libraries/Components/ScrollView/ScrollView.win32.js @@ -1148,21 +1148,6 @@ class ScrollView extends React.Component { } _handleScroll = (e: ScrollEvent) => { - if (__DEV__) { - if ( - this.props.onScroll && - this.props.scrollEventThrottle == null && - Platform.OS === 'ios' - ) { - console.log( - 'You specified `onScroll` on a but not ' + - '`scrollEventThrottle`. You will only receive one event. ' + - 'Using `16` you get all the events but be aware that it may ' + - "cause frame drops, use a bigger number if you don't need as " + - 'much precision.', - ); - } - } this._observedScrollSinceBecomingResponder = true; this.props.onScroll && this.props.onScroll(e); }; diff --git a/packages/@office-iss/react-native-win32/src/Libraries/Components/TextInput/TextInput.win32.js b/packages/@office-iss/react-native-win32/src/Libraries/Components/TextInput/TextInput.win32.js index 856055b304a..11fcf5771aa 100644 --- a/packages/@office-iss/react-native-win32/src/Libraries/Components/TextInput/TextInput.win32.js +++ b/packages/@office-iss/react-native-win32/src/Libraries/Components/TextInput/TextInput.win32.js @@ -960,6 +960,12 @@ export type Props = $ReadOnly<{| */ selectionColor?: ?ColorValue, + /** + * The text selection handle color. + * @platform android + */ + selectionHandleColor?: ?ColorValue, + /** * If `true`, all text will automatically be selected on focus. */ @@ -1156,6 +1162,9 @@ function InternalTextInput(props: Props): React.Node { id, tabIndex, selection: propsSelection, + selectionColor, + selectionHandleColor, + cursorColor, ...otherProps } = props; @@ -1329,10 +1338,7 @@ function InternalTextInput(props: Props): React.Node { [mostRecentEventCount, viewCommands], ); - const ref = useMergeRefs( - setLocalRef, - props.forwardedRef, - ); + const ref = useMergeRefs(setLocalRef, props.forwardedRef); const _onChange = (event: ChangeEvent) => { const currentText = event.nativeEvent.text; @@ -1620,7 +1626,15 @@ function InternalTextInput(props: Props): React.Node { if (childCount > 1) { children = {children}; } - + // For consistency with iOS set cursor/selectionHandle color as selectionColor + const colorProps = { + selectionColor, + selectionHandleColor: + selectionHandleColor === undefined + ? selectionColor + : selectionHandleColor, + cursorColor: cursorColor === undefined ? selectionColor : cursorColor, + }; textInput = ( /* $FlowFixMe[prop-missing] the types for AndroidTextInput don't match up * exactly with the props for TextInput. This will need to get fixed */ @@ -1634,6 +1648,7 @@ function InternalTextInput(props: Props): React.Node { // $FlowFixMe[incompatible-type] - Figure out imperative + forward refs. ref={ref} {...otherProps} + {...colorProps} {...eventHandlers} accessibilityErrorMessage={accessibilityErrorMessage} accessibilityState={_accessibilityState} diff --git a/packages/@office-iss/react-native-win32/src/Libraries/Image/Image.win32.js b/packages/@office-iss/react-native-win32/src/Libraries/Image/Image.win32.js index 41a84bfd1a0..1831dfc1fe3 100644 --- a/packages/@office-iss/react-native-win32/src/Libraries/Image/Image.win32.js +++ b/packages/@office-iss/react-native-win32/src/Libraries/Image/Image.win32.js @@ -22,7 +22,10 @@ import {createRootTag} from '../ReactNative/RootTag'; import flattenStyle from '../StyleSheet/flattenStyle'; import StyleSheet from '../StyleSheet/StyleSheet'; import ImageAnalyticsTagContext from './ImageAnalyticsTagContext'; -import {unstable_getImageComponentDecorator} from './ImageInjection'; +import { + unstable_getImageComponentDecorator, + useWrapRefWithImageAttachedCallbacks, +} from './ImageInjection'; import {getImageSourcesFromImageProps} from './ImageSourceUtils'; import {convertObjectFitToResizeMode} from './ImageUtils'; import ImageViewNativeComponent from './ImageViewNativeComponent'; @@ -190,6 +193,8 @@ let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => { }; const accessibilityLabel = props['aria-label'] ?? props.accessibilityLabel; + const actualRef = useWrapRefWithImageAttachedCallbacks(forwardedRef); + return ( // [Win32 @@ -209,7 +214,7 @@ let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => { {...restProps} accessible={props.alt !== undefined ? true : props.accessible} accessibilityLabel={accessibilityLabel ?? props.alt} - ref={forwardedRef} + ref={actualRef} style={style} resizeMode={resizeMode} tintColor={tintColor} diff --git a/packages/@office-iss/react-native-win32/src/Libraries/Inspector/Inspector.win32.js b/packages/@office-iss/react-native-win32/src/Libraries/Inspector/Inspector.win32.js index c8f87164da9..037d7b5f43a 100644 --- a/packages/@office-iss/react-native-win32/src/Libraries/Inspector/Inspector.win32.js +++ b/packages/@office-iss/react-native-win32/src/Libraries/Inspector/Inspector.win32.js @@ -16,7 +16,6 @@ import type { } from '../Renderer/shims/ReactNativeTypes'; import type {ViewStyleProp} from '../StyleSheet/StyleSheet'; import type {ReactDevToolsAgent} from '../Types/ReactDevToolsTypes'; -import type {HostRef} from './getInspectorDataForViewAtPoint'; const PressabilityDebug = require('../Pressability/PressabilityDebug'); const ReactNative = require('../Renderer/shims/ReactNative'); @@ -47,7 +46,7 @@ export type InspectedElement = $ReadOnly<{ export type ElementsHierarchy = InspectorData['hierarchy']; type Props = { - inspectedView: ?HostRef, + inspectedViewRef: React.RefObject | null>, onRequestRerenderApp: () => void, reactDevToolsAgent?: ReactDevToolsAgent, }; @@ -55,7 +54,7 @@ type Props = { const UIManager = require('../ReactNative/UIManager'); // [Win32] function Inspector({ - inspectedView, + inspectedViewRef, onRequestRerenderApp, reactDevToolsAgent, }: Props): React.Node { @@ -115,7 +114,7 @@ function Inspector({ } // [Win32 Avoid Dimensions call - const node = ReactNative.findNodeHandle(inspectedView); + const node = ReactNative.findNodeHandle(inspectedViewRef); // $FlowFixMe[incompatible-call] UIManager.measure(node, (x, y, width, height, left, top) => { setPanelPosition(pointerY > height / 2 ? 'top' : 'bottom'); @@ -132,7 +131,7 @@ function Inspector({ // ]Win32 getInspectorDataForViewAtPoint( - inspectedView, + inspectedViewRef.current, locationX, locationY, viewData => { diff --git a/packages/@office-iss/react-native-win32/src/Libraries/Utilities/useMergeRefs.js b/packages/@office-iss/react-native-win32/src/Libraries/Utilities/useMergeRefs.js index 15bd982d036..1499e4eab3a 100644 --- a/packages/@office-iss/react-native-win32/src/Libraries/Utilities/useMergeRefs.js +++ b/packages/@office-iss/react-native-win32/src/Libraries/Utilities/useMergeRefs.js @@ -8,13 +8,9 @@ * @format */ +import * as React from 'react'; import {useCallback} from 'react'; -type CallbackRef = T => mixed; -type ObjectRef = {current: T, ...}; - -type Ref = CallbackRef | ObjectRef; - /** * Constructs a new ref that forwards new values to each of the given refs. The * given refs will always be invoked in the order that they are supplied. @@ -24,11 +20,11 @@ type Ref = CallbackRef | ObjectRef; * the returned callback ref is supplied as a `ref` to a React element, this may * lead to problems with the given refs being invoked more times than desired. */ -export default function useMergeRefs( - ...refs: $ReadOnlyArray> -): CallbackRef { +export default function useMergeRefs( + ...refs: $ReadOnlyArray> +): (Instance | null) => void { return useCallback( - (current: T) => { + (current: Instance | null) => { for (const ref of refs) { if (ref != null) { if (typeof ref === 'function') { diff --git a/packages/@office-iss/react-native-win32/src/index.win32.js b/packages/@office-iss/react-native-win32/src/index.win32.js index 9ccafc1dc39..f4c6b17eb1d 100644 --- a/packages/@office-iss/react-native-win32/src/index.win32.js +++ b/packages/@office-iss/react-native-win32/src/index.win32.js @@ -294,7 +294,7 @@ module.exports = { 'pushNotificationIOS-moved', 'PushNotificationIOS has been extracted from react-native core and will be removed in a future release. ' + "It can now be installed and imported from '@react-native-community/push-notification-ios' instead of 'react-native'. " + - 'See https://github.com/react-native-push-notification-ios/push-notification-ios', + 'See https://github.com/react-native-push-notification/ios', ); return require('./Libraries/PushNotificationIOS/PushNotificationIOS'); }, @@ -467,7 +467,8 @@ if (__DEV__) { invariant( false, 'ART has been removed from React Native. ' + - "It can now be installed and imported from '@react-native-community/art' instead of 'react-native'. " + + "Please upgrade to use either 'react-native-svg' or a similar package. " + + "If you cannot upgrade to a different library, please install the deprecated '@react-native-community/art' package. " + 'See https://github.com/react-native-art/art', ); }, @@ -547,7 +548,7 @@ if (__DEV__) { invariant( false, 'CameraRoll has been removed from React Native. ' + - "It can now be installed and imported from '@react-native-community/cameraroll' instead of 'react-native'. " + + "It can now be installed and imported from '@react-native-camera-roll/camera-roll' instead of 'react-native'. " + 'See https://github.com/react-native-cameraroll/react-native-cameraroll', ); }, @@ -660,7 +661,7 @@ if (__DEV__) { invariant( false, 'SegmentedControlIOS has been removed from React Native. ' + - "It can now be installed and imported from '@react-native-community/segmented-checkbox' instead of 'react-native'." + + "It can now be installed and imported from '@react-native-segmented-control/segmented-control' instead of 'react-native'." + 'See https://github.com/react-native-segmented-control/segmented-control', ); }, @@ -738,7 +739,7 @@ if (__DEV__) { invariant( false, 'MaskedViewIOS has been removed from React Native. ' + - "It can now be installed and imported from '@react-native-community/react-native-masked-view' instead of 'react-native'. " + + "It can now be installed and imported from '@react-native-masked-view/masked-view' instead of 'react-native'. " + 'See https://github.com/react-native-masked-view/masked-view', ); }, @@ -768,7 +769,7 @@ if (__DEV__) { invariant( false, 'ImagePickerIOS has been removed from React Native. ' + - "Please upgrade to use either '@react-native-community/react-native-image-picker' or 'expo-image-picker'. " + + "Please upgrade to use either 'react-native-image-picker' or 'expo-image-picker'. " + "If you cannot upgrade to a different library, please install the deprecated '@react-native-community/image-picker-ios' package. " + 'See https://github.com/rnc-archive/react-native-image-picker-ios', ); diff --git a/packages/@react-native-windows/automation-channel/package.json b/packages/@react-native-windows/automation-channel/package.json index bd31eea3679..4a1c29d0c84 100644 --- a/packages/@react-native-windows/automation-channel/package.json +++ b/packages/@react-native-windows/automation-channel/package.json @@ -31,7 +31,7 @@ "just-scripts": "^1.3.2", "prettier": "^2.4.1", "react": "18.2.0", - "react-native": "0.74.0-nightly-20231116-fa89dd68b", + "react-native": "0.74.0-nightly-20231201-c30f2b620", "react-native-windows": "^0.0.0-canary.755", "typescript": "^4.9.5" }, diff --git a/packages/@react-native-windows/tester/overrides.json b/packages/@react-native-windows/tester/overrides.json index 87925d42df1..e0853e05892 100644 --- a/packages/@react-native-windows/tester/overrides.json +++ b/packages/@react-native-windows/tester/overrides.json @@ -5,7 +5,7 @@ "excludePatterns": [ "src/js/examples-win/**" ], - "baseVersion": "0.74.0-nightly-20231116-fa89dd68b", + "baseVersion": "0.74.0-nightly-20231201-c30f2b620", "overrides": [ { "type": "derived", @@ -38,7 +38,7 @@ "type": "patch", "file": "src/js/examples/TextInput/TextInputExample.windows.js", "baseFile": "packages/rn-tester/js/examples/TextInput/TextInputExample.android.js", - "baseHash": "528b850e74260e8059797a7fbf771ce8a07f27dd", + "baseHash": "0feb796c56462855789816350f23943b5a212b2e", "issue": 5688 }, { diff --git a/packages/@react-native-windows/tester/package.json b/packages/@react-native-windows/tester/package.json index c8367ceb304..28a9a221c17 100644 --- a/packages/@react-native-windows/tester/package.json +++ b/packages/@react-native-windows/tester/package.json @@ -18,7 +18,7 @@ "peerDependencies": { "@react-native-picker/picker": "2.4.10", "react": "18.0.0", - "react-native": "0.74.0-nightly-20231116-fa89dd68b", + "react-native": "0.74.0-nightly-20231201-c30f2b620", "react-native-windows": "^0.0.0-canary.755", "react-native-xaml": "^0.0.50" }, @@ -31,7 +31,7 @@ "@types/node": "^18.0.0", "eslint": "^8.19.0", "just-scripts": "^1.3.3", - "react-native": "0.74.0-nightly-20231116-fa89dd68b", + "react-native": "0.74.0-nightly-20231201-c30f2b620", "react-native-platform-override": "^1.9.17", "react-native-windows": "^0.0.0-canary.755", "typescript": "^4.9.5" diff --git a/packages/@react-native-windows/tester/src/js/examples/TextInput/TextInputExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/TextInput/TextInputExample.windows.js index 7e2403b72c4..1c52a29fe0f 100644 --- a/packages/@react-native-windows/tester/src/js/examples/TextInput/TextInputExample.windows.js +++ b/packages/@react-native-windows/tester/src/js/examples/TextInput/TextInputExample.windows.js @@ -306,11 +306,21 @@ const examples: Array = [ + + ); }, @@ -602,7 +612,7 @@ const examples: Array = [ 'next', ]; const returnKeyLabels = ['Compile', 'React Native']; - const examples = returnKeyTypes.map(type => { + const returnKeyExamples = returnKeyTypes.map(type => { return ( = [ }); return ( - {examples} + {returnKeyExamples} {types} ); diff --git a/packages/@react-native/monorepo/overrides.json b/packages/@react-native/monorepo/overrides.json index 18a9cf25246..cffec296054 100644 --- a/packages/@react-native/monorepo/overrides.json +++ b/packages/@react-native/monorepo/overrides.json @@ -1,11 +1,11 @@ { - "baseVersion": "0.74.0-nightly-20231116-fa89dd68b", + "baseVersion": "0.74.0-nightly-20231201-c30f2b620", "overrides": [ { "type": "patch", "file": "package.json", "baseFile": "package.json", - "baseHash": "fefc1a41353735adfc86885e6d11eebb659501a5" + "baseHash": "0e97ea56e9b9e6203f390035e923cb0a888d35a5" } ] } \ No newline at end of file diff --git a/packages/@react-native/monorepo/package.json b/packages/@react-native/monorepo/package.json index 6086c1a05ae..7945bcca150 100644 --- a/packages/@react-native/monorepo/package.json +++ b/packages/@react-native/monorepo/package.json @@ -80,10 +80,10 @@ "eslint-plugin-react-native": "^4.0.0", "eslint-plugin-redundant-undefined": "^0.4.0", "eslint-plugin-relay": "^1.8.3", - "flow-api-translator": "0.17.1", - "flow-bin": "^0.222.0", + "flow-api-translator": "0.18.0", + "flow-bin": "^0.223.0", "glob": "^7.1.1", - "hermes-eslint": "0.17.1", + "hermes-eslint": "0.18.0", "inquirer": "^7.1.0", "jest": "^29.6.3", "jest-junit": "^10.0.0", @@ -95,7 +95,7 @@ "mock-fs": "^5.1.4", "nullthrows": "^1.1.1", "prettier": "2.8.8", - "prettier-plugin-hermes-parser": "0.17.1", + "prettier-plugin-hermes-parser": "0.18.0", "react": "18.2.0", "react-test-renderer": "18.2.0", "rimraf": "^3.0.2", diff --git a/packages/@react-native/tester/js/RNTesterAppShared.js b/packages/@react-native/tester/js/RNTesterAppShared.js index 04c17f58f32..27260cc901a 100644 --- a/packages/@react-native/tester/js/RNTesterAppShared.js +++ b/packages/@react-native/tester/js/RNTesterAppShared.js @@ -8,6 +8,8 @@ * @flow */ +import type {RNTesterModuleInfo} from './types/RNTesterTypes'; + import RNTesterModuleContainer from './components/RNTesterModuleContainer'; import RNTesterModuleList from './components/RNTesterModuleList'; import RNTesterNavBar, {navBarHeight} from './components/RNTesterNavbar'; @@ -24,11 +26,24 @@ import { initialNavigationState, } from './utils/testerStateUtils'; import * as React from 'react'; -import {BackHandler, StyleSheet, View, useColorScheme} from 'react-native'; +import { + BackHandler, + Linking, + StyleSheet, + View, + useColorScheme, +} from 'react-native'; // RNTester App currently uses in memory storage for storing navigation state -const RNTesterApp = (): React.Node => { +const RNTesterApp = ({ + testList, +}: { + testList?: { + components?: Array, + apis?: Array, + }, +}): React.Node => { const [state, dispatch] = React.useReducer( RNTesterNavigationReducer, initialNavigationState, @@ -44,8 +59,8 @@ const RNTesterApp = (): React.Node => { } = state; const examplesList = React.useMemo( - () => getExamplesListWithRecentlyUsed({recentlyUsed}), - [recentlyUsed], + () => getExamplesListWithRecentlyUsed({recentlyUsed, testList}), + [recentlyUsed, testList], ); const handleBackPress = React.useCallback(() => { @@ -104,6 +119,45 @@ const RNTesterApp = (): React.Node => { [dispatch], ); + // Setup Linking event subscription + const handleOpenUrlRequest = React.useCallback( + ({url}: {url: string, ...}) => { + // Supported URL pattern(s): + // * rntester://example/ + const match = /^rntester:\/\/example\/(.+)$/.exec(url); + if (!match) { + console.warn( + `handleOpenUrlRequest: Received unsupported URL: '${url}'`, + ); + return; + } + + const key = match[1]; + const exampleModule = RNTesterList.Modules[key]; + if (exampleModule == null) { + console.warn( + `handleOpenUrlRequest: Unable to find requested module with key: '${key}'`, + ); + return; + } + + console.log(`handleOpenUrlRequest: Opening example '${key}'`); + + dispatch({ + type: RNTesterNavigationActionsType.EXAMPLE_OPEN_URL_REQUEST, + data: { + key, + title: exampleModule.title || key, + }, + }); + }, + [dispatch], + ); + React.useEffect(() => { + const subscription = Linking.addEventListener('url', handleOpenUrlRequest); + return () => subscription.remove(); + }, [handleOpenUrlRequest]); + const theme = colorScheme === 'dark' ? themes.dark : themes.light; if (examplesList === null) { diff --git a/packages/@react-native/tester/js/examples/TextInput/TextInputExample.android.js b/packages/@react-native/tester/js/examples/TextInput/TextInputExample.android.js index d0ad8661558..35347b720ce 100644 --- a/packages/@react-native/tester/js/examples/TextInput/TextInputExample.android.js +++ b/packages/@react-native/tester/js/examples/TextInput/TextInputExample.android.js @@ -196,10 +196,20 @@ const examples: Array = [ + + ); }, @@ -470,7 +480,7 @@ const examples: Array = [ 'next', ]; const returnKeyLabels = ['Compile', 'React Native']; - const examples = returnKeyTypes.map(type => { + const returnKeyExamples = returnKeyTypes.map(type => { return ( = [ }); return ( - {examples} + {returnKeyExamples} {types} ); diff --git a/packages/@react-native/tester/js/examples/TurboModule/NativeCxxModuleExampleExample.js b/packages/@react-native/tester/js/examples/TurboModule/NativeCxxModuleExampleExample.js index f4135cc5b5f..189c3a5fd21 100644 --- a/packages/@react-native/tester/js/examples/TurboModule/NativeCxxModuleExampleExample.js +++ b/packages/@react-native/tester/js/examples/TurboModule/NativeCxxModuleExampleExample.js @@ -55,7 +55,9 @@ type Examples = | 'rejectPromise' | 'voidFunc' | 'optionalArgs' - | 'emitDeviceEvent' + | 'emitDeviceEvent'; + +type ErrorExamples = | 'voidFuncThrows' | 'getObjectThrows' | 'promiseThrows' @@ -131,6 +133,10 @@ class NativeCxxModuleExampleExample extends React.Component<{||}, State> { }); NativeCxxModuleExample?.emitCustomDeviceEvent(CUSTOM_EVENT_TYPE); }, + }; + + // $FlowFixMe[missing-local-annot] + _errorTests = { voidFuncThrows: () => { try { NativeCxxModuleExample?.voidFuncThrows(); @@ -202,7 +208,7 @@ class NativeCxxModuleExampleExample extends React.Component<{||}, State> { })); } - _renderResult(name: Examples): React.Node { + _renderResult(name: Examples | ErrorExamples): React.Node { const result = this.state.testResults[name] || {}; return ( @@ -231,7 +237,7 @@ class NativeCxxModuleExampleExample extends React.Component<{||}, State> { this._setResult(item, this._tests[item]()), ) }> - Run all tests + Run function call tests this.setState({testResults: {}})} @@ -254,6 +260,24 @@ class NativeCxxModuleExampleExample extends React.Component<{||}, State> { )} /> + + Report errors tests + + item} + renderItem={({item}: {item: ErrorExamples, ...}) => ( + + this._setResult(item, this._errorTests[item]())}> + {item} + + {this._renderResult(item)} + + )} + /> ); } diff --git a/packages/@react-native/tester/js/utils/RNTesterNavigationReducer.js b/packages/@react-native/tester/js/utils/RNTesterNavigationReducer.js index 9c2097d668c..db59ba5a7a7 100644 --- a/packages/@react-native/tester/js/utils/RNTesterNavigationReducer.js +++ b/packages/@react-native/tester/js/utils/RNTesterNavigationReducer.js @@ -18,6 +18,7 @@ export const RNTesterNavigationActionsType = { BACK_BUTTON_PRESS: 'BACK_BUTTON_PRESS', MODULE_CARD_PRESS: 'MODULE_CARD_PRESS', EXAMPLE_CARD_PRESS: 'EXAMPLE_CARD_PRESS', + EXAMPLE_OPEN_URL_REQUEST: 'EXAMPLE_OPEN_URL_REQUEST', }; const getUpdatedRecentlyUsed = ({ @@ -100,6 +101,14 @@ export const RNTesterNavigationReducer = ( state.activeModuleExampleKey != null ? state.activeModuleTitle : null, }; + case RNTesterNavigationActionsType.EXAMPLE_OPEN_URL_REQUEST: + return { + ...state, + activeModuleKey: key, + activeModuleTitle: title, + activeModuleExampleKey: null, + }; + default: throw new Error(`Invalid action type ${action.type}`); } diff --git a/packages/@react-native/tester/js/utils/testerStateUtils.js b/packages/@react-native/tester/js/utils/testerStateUtils.js index c3239adeab9..805cfe83349 100644 --- a/packages/@react-native/tester/js/utils/testerStateUtils.js +++ b/packages/@react-native/tester/js/utils/testerStateUtils.js @@ -48,15 +48,21 @@ const filterEmptySections = (examplesList: ExamplesList): any => { export const getExamplesListWithRecentlyUsed = ({ recentlyUsed, + testList, }: { recentlyUsed: ComponentList, + testList?: { + components?: Array, + apis?: Array, + }, }): ExamplesList | null => { // Return early if state has not been initialized from storage if (!recentlyUsed) { return null; } - const components = RNTesterList.Components.map( + const componentList = testList?.components ?? RNTesterList.Components; + const components = componentList.map( (componentExample): RNTesterModuleInfo => ({ ...componentExample, exampleType: Screens.COMPONENTS, @@ -69,7 +75,8 @@ export const getExamplesListWithRecentlyUsed = ({ ) .filter(Boolean); - const apis = RNTesterList.APIs.map((apiExample): RNTesterModuleInfo => ({ + const apisList = testList?.apis ?? RNTesterList.APIs; + const apis = apisList.map((apiExample): RNTesterModuleInfo => ({ ...apiExample, exampleType: Screens.APIS, })); diff --git a/packages/@react-native/tester/overrides.json b/packages/@react-native/tester/overrides.json index 9a9d7a288b5..92b23162927 100644 --- a/packages/@react-native/tester/overrides.json +++ b/packages/@react-native/tester/overrides.json @@ -1,5 +1,5 @@ { - "baseVersion": "0.74.0-nightly-20231116-fa89dd68b", + "baseVersion": "0.74.0-nightly-20231201-c30f2b620", "overrides": [ { "type": "copy", @@ -383,7 +383,7 @@ "type": "copy", "directory": "js/examples/TextInput", "baseDirectory": "packages/rn-tester/js/examples/TextInput", - "baseHash": "76225825a3f4a981e5b804c14edc68081257967f", + "baseHash": "945fcdd1e5cb8a229d62b43a367a0a49ca754670", "issue": 4054 }, { @@ -425,7 +425,7 @@ "type": "copy", "directory": "js/examples/TurboModule", "baseDirectory": "packages/rn-tester/js/examples/TurboModule", - "baseHash": "b5578c95183bfbf584844d1c77d7c198ada306e1", + "baseHash": "2f833999772c0489207afe4d58ae7e001d6da4fe", "issue": 4054 }, { @@ -474,7 +474,7 @@ "type": "copy", "file": "js/RNTesterAppShared.js", "baseFile": "packages/rn-tester/js/RNTesterAppShared.js", - "baseHash": "47dbdd4392c77270221b14051bb898ccb0ef610c", + "baseHash": "0323b0f1a26dba9a0f053e098024604c582052db", "issue": 4054 }, { @@ -488,7 +488,7 @@ "type": "copy", "directory": "js/utils", "baseDirectory": "packages/rn-tester/js/utils", - "baseHash": "97abb83b21178ac0ca73d2b90f2d5572cd2a25ff", + "baseHash": "fda3b531c884cf078815fac9c040a3e9cd55df97", "issue": 4054 }, { diff --git a/packages/e2e-test-app-fabric/package.json b/packages/e2e-test-app-fabric/package.json index 6e8414bbb53..a776d1e0f13 100644 --- a/packages/e2e-test-app-fabric/package.json +++ b/packages/e2e-test-app-fabric/package.json @@ -19,7 +19,7 @@ "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "react": "18.2.0", - "react-native": "0.74.0-nightly-20231116-fa89dd68b", + "react-native": "0.74.0-nightly-20231201-c30f2b620", "react-native-windows": "^0.0.0-canary.755" }, "devDependencies": { diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/TextInputComponentTest.test.ts.snap b/packages/e2e-test-app-fabric/test/__snapshots__/TextInputComponentTest.test.ts.snap index 593b98c4820..5b9c3d64205 100644 --- a/packages/e2e-test-app-fabric/test/__snapshots__/TextInputComponentTest.test.ts.snap +++ b/packages/e2e-test-app-fabric/test/__snapshots__/TextInputComponentTest.test.ts.snap @@ -1399,7 +1399,7 @@ exports[`TextInput Tests TextInputs can autocomplete, address country 1`] = ` "Opacity": 1, "Size": [ 916, - 28, + 29, ], "Visual Type": "SpriteVisual", }, @@ -1550,7 +1550,7 @@ exports[`TextInput Tests TextInputs can autocomplete, country 1`] = ` "Opacity": 1, "Size": [ 916, - 29, + 28, ], "Visual Type": "SpriteVisual", }, @@ -1852,7 +1852,7 @@ exports[`TextInput Tests TextInputs can autocomplete, sms-otp 1`] = ` "Opacity": 1, "Size": [ 916, - 29, + 28, ], "Visual Type": "SpriteVisual", }, @@ -2050,7 +2050,7 @@ exports[`TextInput Tests TextInputs can be editable 1`] = ` "Opacity": 1, "Size": [ 916, - 28, + 29, ], "Visual Type": "SpriteVisual", }, @@ -2577,7 +2577,7 @@ exports[`TextInput Tests TextInputs can customize its padding 1`] = ` "Opacity": 1, "Size": [ 916, - 19, + 20, ], "Visual Type": "SpriteVisual", }, @@ -3728,7 +3728,7 @@ exports[`TextInput Tests TextInputs can have caretHidden 1`] = ` "Opacity": 1, "Size": [ 916, - 23, + 22, ], "Visual Type": "SpriteVisual", }, @@ -3775,7 +3775,7 @@ exports[`TextInput Tests TextInputs can have custom return key label, Compile 1` "Opacity": 1, "Size": [ 916, - 23, + 22, ], "Visual Type": "SpriteVisual", }, @@ -3822,7 +3822,7 @@ exports[`TextInput Tests TextInputs can have custom return key label, React Nati "Opacity": 1, "Size": [ 916, - 22, + 23, ], "Visual Type": "SpriteVisual", }, @@ -3916,7 +3916,7 @@ exports[`TextInput Tests TextInputs can have custom return key type, go 1`] = ` "Opacity": 1, "Size": [ 916, - 22, + 23, ], "Visual Type": "SpriteVisual", }, @@ -4010,7 +4010,7 @@ exports[`TextInput Tests TextInputs can have custom return key type, none 1`] = "Opacity": 1, "Size": [ 916, - 23, + 22, ], "Visual Type": "SpriteVisual", }, @@ -4057,7 +4057,7 @@ exports[`TextInput Tests TextInputs can have custom return key type, previous 1` "Opacity": 1, "Size": [ 916, - 22, + 23, ], "Visual Type": "SpriteVisual", }, @@ -4151,7 +4151,7 @@ exports[`TextInput Tests TextInputs can have custom return key type, send 1`] = "Opacity": 1, "Size": [ 916, - 23, + 22, ], "Visual Type": "SpriteVisual", }, @@ -4198,7 +4198,7 @@ exports[`TextInput Tests TextInputs can have customer letter spacing, spacing=-1 "Opacity": 1, "Size": [ 916, - 22, + 23, ], "Visual Type": "SpriteVisual", }, @@ -4292,7 +4292,7 @@ exports[`TextInput Tests TextInputs can have customer letter spacing, spacing=2 "Opacity": 1, "Size": [ 916, - 23, + 22, ], "Visual Type": "SpriteVisual", }, @@ -4866,7 +4866,7 @@ exports[`TextInput Tests TextInputs can have inline images, drawableLeft and dra "Opacity": 1, "Size": [ 916, - 23, + 22, ], "Visual Type": "SpriteVisual", }, @@ -5866,7 +5866,7 @@ exports[`TextInput Tests TextInputs can set their readOnly prop to false 1`] = ` "Opacity": 1, "Size": [ 916, - 29, + 28, ], "Visual Type": "SpriteVisual", }, @@ -6534,7 +6534,7 @@ exports[`TextInput Tests TextInputs support secure entry, with placeholder text "Opacity": 1, "Size": [ 916, - 23, + 22, ], "Visual Type": "SpriteVisual", }, diff --git a/packages/e2e-test-app-fabric/test/__snapshots__/snapshotPages.test.js.snap b/packages/e2e-test-app-fabric/test/__snapshots__/snapshotPages.test.js.snap index f56f0023c79..6ccc1c2fc88 100644 --- a/packages/e2e-test-app-fabric/test/__snapshots__/snapshotPages.test.js.snap +++ b/packages/e2e-test-app-fabric/test/__snapshots__/snapshotPages.test.js.snap @@ -73881,7 +73881,7 @@ exports[`snapshotAllPages TextInput 19`] = ` + + `; diff --git a/packages/e2e-test-app/package.json b/packages/e2e-test-app/package.json index 589b9dc3714..902a6d8ffb9 100644 --- a/packages/e2e-test-app/package.json +++ b/packages/e2e-test-app/package.json @@ -19,7 +19,7 @@ "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "react": "18.2.0", - "react-native": "0.74.0-nightly-20231116-fa89dd68b", + "react-native": "0.74.0-nightly-20231201-c30f2b620", "react-native-windows": "^0.0.0-canary.755", "react-native-xaml": "^0.0.76" }, diff --git a/packages/integration-test-app/package.json b/packages/integration-test-app/package.json index 9ef446d1793..1b2e80efd3c 100644 --- a/packages/integration-test-app/package.json +++ b/packages/integration-test-app/package.json @@ -16,7 +16,7 @@ "@typescript-eslint/parser": "^5.21.0", "chai": "^4.2.0", "react": "18.2.0", - "react-native": "0.74.0-nightly-20231116-fa89dd68b", + "react-native": "0.74.0-nightly-20231201-c30f2b620", "react-native-windows": "^0.0.0-canary.755" }, "devDependencies": { diff --git a/packages/playground/package.json b/packages/playground/package.json index 0030921a13b..409bcd01397 100644 --- a/packages/playground/package.json +++ b/packages/playground/package.json @@ -15,7 +15,7 @@ "@typescript-eslint/eslint-plugin": "^5.21.0", "@typescript-eslint/parser": "^5.21.0", "react": "18.2.0", - "react-native": "0.74.0-nightly-20231116-fa89dd68b", + "react-native": "0.74.0-nightly-20231201-c30f2b620", "react-native-windows": "^0.0.0-canary.755" }, "devDependencies": { diff --git a/packages/playground/windows/playground/packages.lock.json b/packages/playground/windows/playground/packages.lock.json index ce8abc99a51..3a3f46018f6 100644 --- a/packages/playground/windows/playground/packages.lock.json +++ b/packages/playground/windows/playground/packages.lock.json @@ -2,29 +2,150 @@ "version": 1, "dependencies": { "native,Version=v0.0": { - "Microsoft.Windows.CppWinRT": { + "Microsoft.JavaScript.Hermes": { "type": "Direct", - "requested": "[2.0.210312.4, 2.0.210312.4]", - "resolved": "2.0.210312.4", - "contentHash": "uRxz7Z8Scm7A2JjaaxCzQWTMrQC9RvXYhb7RU8pSqGo/0i0aPJszUeA3N6EhcJU5+FsDr2xzk2iln0x2Lwa6AA==" + "requested": "[0.1.18, )", + "resolved": "0.1.18", + "contentHash": "5K8rRihGwIs2XNOTP2Jsw3T6cegxCBQXcpPS4optONU/AmFElGAfnA6XBQJ4UqlCFCl9Nf9zQrgvCUPBWYHiag==" }, "Microsoft.UI.Xaml": { "type": "Direct", - "requested": "[2.8.0, 2.8.0]", + "requested": "[2.8.0, )", "resolved": "2.8.0", - "contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==" + "contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==", + "dependencies": { + "Microsoft.Web.WebView2": "1.0.1264.42" + } }, - "Microsoft.WinUI": { + "Microsoft.Windows.CppWinRT": { "type": "Direct", - "requested": "[3.0.0-preview4.210210.4, 3.0.0-preview4.210210.4]", - "resolved": "3.0.0-preview4.210210.4", - "contentHash": "fMo1Llbprv3+7nVyUvBxc/lQtMmwBFCGHdeH7sTPIeFKPneNOs0qW2XqnYBorGRRitbPUxxmLKgxOM8zR5dAgA==" + "requested": "[2.0.211028.7, )", + "resolved": "2.0.211028.7", + "contentHash": "JBGI0c3WLoU6aYJRy9Qo0MLDQfObEp+d4nrhR95iyzf7+HOgjRunHDp/6eGFREd7xq3OI1mll9ecJrMfzBvlyg==" }, - "Microsoft.JavaScript.Hermes": { - "type": "Direct", - "requested": "[0.1.15, 0.1.15]", - "resolved": "0.1.15", - "contentHash": "My/u5RvxoymtwWokoweU6iVpuP79w271UjadcmSNqnQ9ESIv00tlVP4sHnIiN3t2lJNDeciyE1EVF4swGPECKQ==" + "boost": { + "type": "Transitive", + "resolved": "1.76.0", + "contentHash": "p+w3YvNdXL8Cu9Fzrmexssu0tZbWxuf6ywsQqHjDlKFE5ojXHof1HIyMC3zDLfLnh80dIeFcEUAuR2Asg/XHRA==" + }, + "Microsoft.Build.Tasks.Git": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "AT3HlgTjsqHnWpBHSNeR0KxbLZD7bztlZVj7I8vgeYG9SYqbeFGh0TM/KVtC6fg53nrWHl3VfZFvb5BiQFcY6Q==" + }, + "Microsoft.SourceLink.Common": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg==" + }, + "Microsoft.SourceLink.GitHub": { + "type": "Transitive", + "resolved": "1.1.1", + "contentHash": "IaJGnOv/M7UQjRJks7B6p7pbPnOwisYGOIzqCz5ilGFTApZ3ktOR+6zJ12ZRPInulBmdAf1SrGdDG2MU8g6XTw==", + "dependencies": { + "Microsoft.Build.Tasks.Git": "1.1.1", + "Microsoft.SourceLink.Common": "1.1.1" + } + }, + "Microsoft.Web.WebView2": { + "type": "Transitive", + "resolved": "1.0.1264.42", + "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" + }, + "common": { + "type": "Project" + }, + "fmt": { + "type": "Project" + }, + "folly": { + "type": "Project", + "dependencies": { + "boost": "[1.76.0, )", + "fmt": "[1.0.0, )" + } + }, + "microsoft.reactnative": { + "type": "Project", + "dependencies": { + "Common": "[1.0.0, )", + "Folly": "[1.0.0, )", + "Microsoft.JavaScript.Hermes": "[0.1.18, )", + "Microsoft.SourceLink.GitHub": "[1.1.1, )", + "Microsoft.UI.Xaml": "[2.8.0, )", + "ReactCommon": "[1.0.0, )", + "boost": "[1.76.0, )" + } + }, + "playgroundnativemodules": { + "type": "Project", + "dependencies": { + "Microsoft.ReactNative": "[1.0.0, )", + "Microsoft.UI.Xaml": "[2.8.0, )" + } + }, + "reactcommon": { + "type": "Project", + "dependencies": { + "Folly": "[1.0.0, )", + "boost": "[1.76.0, )" + } + }, + "reactnativepicker": { + "type": "Project", + "dependencies": { + "Microsoft.ReactNative": "[1.0.0, )", + "Microsoft.UI.Xaml": "[2.8.0, )" + } + } + }, + "native,Version=v0.0/win10-arm": { + "Microsoft.Web.WebView2": { + "type": "Transitive", + "resolved": "1.0.1264.42", + "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" + } + }, + "native,Version=v0.0/win10-arm-aot": { + "Microsoft.Web.WebView2": { + "type": "Transitive", + "resolved": "1.0.1264.42", + "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" + } + }, + "native,Version=v0.0/win10-arm64-aot": { + "Microsoft.Web.WebView2": { + "type": "Transitive", + "resolved": "1.0.1264.42", + "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" + } + }, + "native,Version=v0.0/win10-x64": { + "Microsoft.Web.WebView2": { + "type": "Transitive", + "resolved": "1.0.1264.42", + "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" + } + }, + "native,Version=v0.0/win10-x64-aot": { + "Microsoft.Web.WebView2": { + "type": "Transitive", + "resolved": "1.0.1264.42", + "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" + } + }, + "native,Version=v0.0/win10-x86": { + "Microsoft.Web.WebView2": { + "type": "Transitive", + "resolved": "1.0.1264.42", + "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" + } + }, + "native,Version=v0.0/win10-x86-aot": { + "Microsoft.Web.WebView2": { + "type": "Transitive", + "resolved": "1.0.1264.42", + "contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA==" } } } diff --git a/packages/sample-apps/package.json b/packages/sample-apps/package.json index 98ac080ecae..6829455cf2f 100644 --- a/packages/sample-apps/package.json +++ b/packages/sample-apps/package.json @@ -15,7 +15,7 @@ "@typescript-eslint/eslint-plugin": "^5.30.5", "@typescript-eslint/parser": "^5.57.1", "react": "18.2.0", - "react-native": "0.74.0-nightly-20231116-fa89dd68b", + "react-native": "0.74.0-nightly-20231201-c30f2b620", "react-native-windows": "^0.0.0-canary.755" }, "devDependencies": { diff --git a/vnext/.flowconfig b/vnext/.flowconfig index f3e8f1e1d8f..02be1bcf144 100644 --- a/vnext/.flowconfig +++ b/vnext/.flowconfig @@ -140,4 +140,4 @@ untyped-import untyped-type-import [version] -^0.222.0 +^0.223.0 diff --git a/vnext/Directory.Build.props b/vnext/Directory.Build.props index 7751b7e2b0e..da6609584d3 100644 --- a/vnext/Directory.Build.props +++ b/vnext/Directory.Build.props @@ -22,7 +22,7 @@ 10.1.0 ca2e3685b160617d3d95fcd9e789c4e06ca88 - 53b897b03c1c7e57c3372acc6234447a44e150d6 + 83cfef428a97627c9185c73da097e42742de56eb