diff --git a/change/@office-iss-react-native-win32-ea206a1d-b8c2-4dde-8ddb-ee873ab3f7f0.json b/change/@office-iss-react-native-win32-ea206a1d-b8c2-4dde-8ddb-ee873ab3f7f0.json new file mode 100644 index 00000000000..8f599df1e7f --- /dev/null +++ b/change/@office-iss-react-native-win32-ea206a1d-b8c2-4dde-8ddb-ee873ab3f7f0.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Integrate 10/20", + "packageName": "@office-iss/react-native-win32", + "email": "yajurgrover24@gmail.com", + "dependentChangeType": "patch" +} diff --git a/change/@react-native-windows-automation-channel-c72d004e-4077-431c-8abf-ff14b7d7d15c.json b/change/@react-native-windows-automation-channel-c72d004e-4077-431c-8abf-ff14b7d7d15c.json new file mode 100644 index 00000000000..eddd3d27f59 --- /dev/null +++ b/change/@react-native-windows-automation-channel-c72d004e-4077-431c-8abf-ff14b7d7d15c.json @@ -0,0 +1,7 @@ +{ + "type": "patch", + "comment": "Integrate 10/20", + "packageName": "@react-native-windows/automation-channel", + "email": "yajurgrover24@gmail.com", + "dependentChangeType": "patch" +} diff --git a/change/@react-native-windows-codegen-1eeda287-b6b1-4a3e-a698-a6c0f661002b.json b/change/@react-native-windows-codegen-1eeda287-b6b1-4a3e-a698-a6c0f661002b.json new file mode 100644 index 00000000000..c18134e50c2 --- /dev/null +++ b/change/@react-native-windows-codegen-1eeda287-b6b1-4a3e-a698-a6c0f661002b.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Integrate 10/20", + "packageName": "@react-native-windows/codegen", + "email": "yajurgrover24@gmail.com", + "dependentChangeType": "patch" +} diff --git a/change/react-native-windows-688201f2-b9a9-4522-a7fd-6a961adcdad8.json b/change/react-native-windows-688201f2-b9a9-4522-a7fd-6a961adcdad8.json new file mode 100644 index 00000000000..6d59e89a106 --- /dev/null +++ b/change/react-native-windows-688201f2-b9a9-4522-a7fd-6a961adcdad8.json @@ -0,0 +1,7 @@ +{ + "type": "prerelease", + "comment": "Integrate 10/20", + "packageName": "react-native-windows", + "email": "yajurgrover24@gmail.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 e655496e0dc..ec50629a38f 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.77.0-nightly-20241015-3485e9ed8", + "baseVersion": "0.77.0-nightly-20241020-e7a3f479f", "overrides": [ { "type": "patch", @@ -42,7 +42,7 @@ "type": "derived", "file": "src/js/utils/RNTesterList.win32.js", "baseFile": "packages/rn-tester/js/utils/RNTesterList.android.js", - "baseHash": "a4a186470316624bcd693e7f8b67739f87e5729c" + "baseHash": "27576bedd435d2e9f130ebfdf8e872d30f0b7855" } ] } \ No newline at end of file diff --git a/packages/@office-iss/react-native-win32-tester/package.json b/packages/@office-iss/react-native-win32-tester/package.json index 9610e0e8660..58390fb644a 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.272", "react": "18.0.0", - "react-native": "0.77.0-nightly-20241015-3485e9ed8" + "react-native": "0.77.0-nightly-20241020-e7a3f479f" }, "devDependencies": { "@office-iss/react-native-win32": "^0.0.0-canary.272", @@ -30,11 +30,11 @@ "@types/node": "^18.0.0", "eslint": "^8.19.0", "just-scripts": "^1.3.3", - "react-native": "0.77.0-nightly-20241015-3485e9ed8", + "react-native": "0.77.0-nightly-20241020-e7a3f479f", "react-native-platform-override": "^1.9.49", "typescript": "5.0.4" }, "engines": { "node": ">= 18" } -} +} \ No newline at end of file diff --git a/packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js b/packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js index e93da886775..099a2dcf659 100644 --- a/packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js +++ b/packages/@office-iss/react-native-win32-tester/src/js/utils/RNTesterList.win32.js @@ -10,7 +10,7 @@ 'use strict'; -import type {RNTesterModuleInfo, RNTesterModule} from '../types/RNTesterTypes'; +import type {RNTesterModule, RNTesterModuleInfo} from '../types/RNTesterTypes'; import ReactNativeFeatureFlags from 'react-native/Libraries/ReactNative/ReactNativeFeatureFlags'; diff --git a/packages/@office-iss/react-native-win32/.flowconfig b/packages/@office-iss/react-native-win32/.flowconfig index 5650473f800..38775fa5d53 100644 --- a/packages/@office-iss/react-native-win32/.flowconfig +++ b/packages/@office-iss/react-native-win32/.flowconfig @@ -160,4 +160,4 @@ untyped-import untyped-type-import [version] -^0.248.1 +^0.250.0 diff --git a/packages/@office-iss/react-native-win32/overrides.json b/packages/@office-iss/react-native-win32/overrides.json index ade1ed9d043..8a7bf8391e0 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-win/rntypes/**" ], - "baseVersion": "0.77.0-nightly-20241015-3485e9ed8", + "baseVersion": "0.77.0-nightly-20241020-e7a3f479f", "overrides": [ { "type": "derived", "file": ".flowconfig", "baseFile": ".flowconfig", - "baseHash": "fa800520804222b3f944f7ffbb6a82f5ad89dc76" + "baseHash": "d824685eb9983c3aecb6d8207eeb0312f3d5a743" }, { "type": "derived", "file": "src-win/index.win32.js", "baseFile": "packages/react-native/index.js", - "baseHash": "ad455e241e35ebd718a6304f3de9d04c1f9e4f2b" + "baseHash": "2c80856075b7979d9119fb5e2b4b66b43456c068" }, { "type": "platform", @@ -109,7 +109,7 @@ "type": "derived", "file": "src-win/Libraries/Components/TextInput/TextInput.win32.js", "baseFile": "packages/react-native/Libraries/Components/TextInput/TextInput.js", - "baseHash": "d7364ef8dd1c0bc25cc189d135e846522b02b3a7" + "baseHash": "87f676e0bfd031b3dd8c79cf78b64af3c525b151" }, { "type": "patch", @@ -232,7 +232,7 @@ "type": "derived", "file": "src-win/Libraries/Image/Image.win32.js", "baseFile": "packages/react-native/Libraries/Image/Image.ios.js", - "baseHash": "e5cd104f5060ad354072889937ea92d508a32490", + "baseHash": "a5abee6de7dca3cb043b834925de3f6f0443c738", "issue": 4320 }, { @@ -286,7 +286,7 @@ "type": "patch", "file": "src-win/Libraries/Inspector/Inspector.win32.js", "baseFile": "packages/react-native/Libraries/Inspector/Inspector.js", - "baseHash": "ac4d1824877906651f2d82ab7910dda3ecb2bd80" + "baseHash": "ad3ed5cb941f304f5751c6d12274ffe81753162c" }, { "type": "patch", @@ -497,13 +497,13 @@ "type": "copy", "file": "src-win/Libraries/Utilities/useMergeRefs.js", "baseFile": "packages/react-native/Libraries/Utilities/useMergeRefs.js", - "baseHash": "1f1ca637132e6e0fe1549ba520d98508269ca2bd" + "baseHash": "4ba42e1b43ef55a1a9e3095336979fa712f4dc8d" }, { "type": "patch", "file": "src-win/src/private/animated/NativeAnimatedHelper.win32.js", "baseFile": "packages/react-native/src/private/animated/NativeAnimatedHelper.js", - "baseHash": "96fb410d7d408c49297f9f99a760f954264bce91", + "baseHash": "8c67d57575cccb7281b15ca2591e4edf5c5c36dd", "issue": 11041 }, { diff --git a/packages/@office-iss/react-native-win32/package.json b/packages/@office-iss/react-native-win32/package.json index e89e67ca3c0..43b0e0765d8 100644 --- a/packages/@office-iss/react-native-win32/package.json +++ b/packages/@office-iss/react-native-win32/package.json @@ -30,13 +30,13 @@ "@react-native-community/cli-platform-android": "15.0.0-alpha.2", "@react-native-community/cli-platform-ios": "15.0.0-alpha.2", "@react-native/assets": "1.0.0", - "@react-native/assets-registry": "0.77.0-nightly-20241015-3485e9ed8", - "@react-native/codegen": "0.77.0-nightly-20241015-3485e9ed8", - "@react-native/community-cli-plugin": "0.77.0-nightly-20241015-3485e9ed8", - "@react-native/gradle-plugin": "0.77.0-nightly-20241015-3485e9ed8", - "@react-native/js-polyfills": "0.77.0-nightly-20241015-3485e9ed8", - "@react-native/normalize-colors": "0.77.0-nightly-20241015-3485e9ed8", - "@react-native/virtualized-lists": "0.77.0-nightly-20241015-3485e9ed8", + "@react-native/assets-registry": "0.77.0-nightly-20241020-e7a3f479f", + "@react-native/codegen": "0.77.0-nightly-20241020-e7a3f479f", + "@react-native/community-cli-plugin": "0.77.0-nightly-20241020-e7a3f479f", + "@react-native/gradle-plugin": "0.77.0-nightly-20241020-e7a3f479f", + "@react-native/js-polyfills": "0.77.0-nightly-20241020-e7a3f479f", + "@react-native/normalize-colors": "0.77.0-nightly-20241020-e7a3f479f", + "@react-native/virtualized-lists": "0.77.0-nightly-20241020-e7a3f479f", "abort-controller": "^3.0.0", "anser": "^1.4.9", "ansi-regex": "^5.0.0", @@ -60,7 +60,7 @@ "pretty-format": "^29.7.0", "promise": "^8.3.0", "react-clone-referenced-element": "^1.0.1", - "react-devtools-core": "^6.0.0", + "react-devtools-core": "^6.0.1", "react-refresh": "^0.14.0", "react-shallow-renderer": "^16.15.0", "regenerator-runtime": "^0.13.2", @@ -85,19 +85,19 @@ "@types/prop-types": "15.7.1", "@types/react": "^18.2.6", "eslint": "^8.19.0", - "flow-bin": "^0.245.2", + "flow-bin": "^0.250.0", "jscodeshift": "^0.14.0", "just-scripts": "^1.3.3", "prettier": "2.8.8", "react": "19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20241015-3485e9ed8", + "react-native": "0.77.0-nightly-20241020-e7a3f479f", "react-native-platform-override": "^1.9.49", "typescript": "5.0.4" }, "peerDependencies": { "@types/react": "^18.2.6", "react": "^19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20241015-3485e9ed8" + "react-native": "0.77.0-nightly-20241020-e7a3f479f" }, "beachball": { "defaultNpmTag": "canary", @@ -114,4 +114,4 @@ "engines": { "node": ">= 18" } -} +} \ No newline at end of file diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/TextInput/TextInput.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/TextInput/TextInput.win32.js index f00d0cd3d87..a5b47d6c82a 100644 --- a/packages/@office-iss/react-native-win32/src-win/Libraries/Components/TextInput/TextInput.win32.js +++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Components/TextInput/TextInput.win32.js @@ -250,6 +250,8 @@ export type TextContentType = | 'birthdateDay' | 'birthdateMonth' | 'birthdateYear' + | 'cellularEID' + | 'cellularIMEI' | 'dateTime' | 'flightNumber' | 'shipmentTrackingNumber'; diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Image/Image.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Image/Image.win32.js index b455b753b8e..023d459a5a7 100644 --- a/packages/@office-iss/react-native-win32/src-win/Libraries/Image/Image.win32.js +++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Image/Image.win32.js @@ -164,9 +164,7 @@ let BaseImage: AbstractImageIOS = React.forwardRef((props, forwardedRef) => { 'aria-multiselectable': ariaMultiselectable, // Win32 'aria-required': ariaRequired, // Win32 'aria-selected': ariaSelected, - height, src, - width, ...restProps } = props; diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Inspector/Inspector.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Inspector/Inspector.win32.js index 994bb7513fc..95d481fee40 100644 --- a/packages/@office-iss/react-native-win32/src-win/Libraries/Inspector/Inspector.win32.js +++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Inspector/Inspector.win32.js @@ -17,6 +17,7 @@ import type { } from '../Renderer/shims/ReactNativeTypes'; import type {ViewStyleProp} from '../StyleSheet/StyleSheet'; import type {ReactDevToolsAgent} from '../Types/ReactDevToolsTypes'; + import SafeAreaView from '../../src/private/components/SafeAreaView_INTERNAL_DO_NOT_USE'; const PressabilityDebug = require('../Pressability/PressabilityDebug'); diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Utilities/FocusManager.win32.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Utilities/FocusManager.win32.js index 0b4c77c08f8..5949ad2f3e7 100644 --- a/packages/@office-iss/react-native-win32/src-win/Libraries/Utilities/FocusManager.win32.js +++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Utilities/FocusManager.win32.js @@ -18,7 +18,7 @@ class FocusManager { // This function takes in a ref to a React Component and a bool value. If setWindowFocus = true, call aggressive focus. // Else, call polite focus - static focus(ref: React.Ref, setWindowFocus: boolean) { + static focus(ref: React.RefObject, setWindowFocus: boolean) { if (ref) { if (setWindowFocus) { UIManager.dispatchViewManagerCommand( diff --git a/packages/@office-iss/react-native-win32/src-win/Libraries/Utilities/useMergeRefs.js b/packages/@office-iss/react-native-win32/src-win/Libraries/Utilities/useMergeRefs.js index 1499e4eab3a..3c7439a6036 100644 --- a/packages/@office-iss/react-native-win32/src-win/Libraries/Utilities/useMergeRefs.js +++ b/packages/@office-iss/react-native-win32/src-win/Libraries/Utilities/useMergeRefs.js @@ -8,6 +8,7 @@ * @format */ +import useRefEffect from './useRefEffect'; import * as React from 'react'; import {useCallback} from 'react'; @@ -22,19 +23,37 @@ import {useCallback} from 'react'; */ export default function useMergeRefs( ...refs: $ReadOnlyArray> -): (Instance | null) => void { - return useCallback( - (current: Instance | null) => { - for (const ref of refs) { - if (ref != null) { +): React.RefSetter { + const refEffect = useCallback( + (current: Instance) => { + const cleanups: $ReadOnlyArray void)> = refs.map(ref => { + if (ref == null) { + return undefined; + } else { if (typeof ref === 'function') { - ref(current); + // $FlowIssue[incompatible-type] - Flow does not understand ref cleanup. + const cleanup: void | (() => void) = ref(current); + return typeof cleanup === 'function' + ? cleanup + : () => { + ref(null); + }; } else { ref.current = current; + return () => { + ref.current = null; + }; } } - } + }); + + return () => { + for (const cleanup of cleanups) { + cleanup?.(); + } + }; }, [...refs], // eslint-disable-line react-hooks/exhaustive-deps ); + return useRefEffect(refEffect); } diff --git a/packages/@office-iss/react-native-win32/src-win/index.win32.js b/packages/@office-iss/react-native-win32/src-win/index.win32.js index 716b1c785a6..22b98e07a25 100644 --- a/packages/@office-iss/react-native-win32/src-win/index.win32.js +++ b/packages/@office-iss/react-native-win32/src-win/index.win32.js @@ -88,7 +88,6 @@ import typeof UTFSequence from './Libraries/UTFSequence'; import typeof * as Appearance from './Libraries/Utilities/Appearance'; import typeof BackHandler from './Libraries/Utilities/BackHandler'; import typeof DeviceInfo from './Libraries/Utilities/DeviceInfo'; -import typeof DevMenu from './src/private/devmenu/DevMenu'; import typeof DevSettings from './Libraries/Utilities/DevSettings'; import typeof Dimensions from './Libraries/Utilities/Dimensions'; import typeof PixelRatio from './Libraries/Utilities/PixelRatio'; @@ -97,6 +96,7 @@ import typeof useColorScheme from './Libraries/Utilities/useColorScheme'; import typeof useWindowDimensions from './Libraries/Utilities/useWindowDimensions'; import typeof Vibration from './Libraries/Vibration/Vibration'; import typeof YellowBox from './Libraries/YellowBox/YellowBoxDeprecated'; +import typeof DevMenu from './src/private/devmenu/DevMenu'; const warnOnce = require('./Libraries/Utilities/warnOnce'); const invariant = require('invariant'); diff --git a/packages/@office-iss/react-native-win32/src-win/src/private/animated/NativeAnimatedHelper.win32.js b/packages/@office-iss/react-native-win32/src-win/src/private/animated/NativeAnimatedHelper.win32.js index 30c2feef81d..71e99918396 100644 --- a/packages/@office-iss/react-native-win32/src-win/src/private/animated/NativeAnimatedHelper.win32.js +++ b/packages/@office-iss/react-native-win32/src-win/src/private/animated/NativeAnimatedHelper.win32.js @@ -8,7 +8,6 @@ * @format */ -import type {EventSubscription} from '../../../Libraries/vendor/emitter/EventEmitter'; import type {EventConfig} from '../../../Libraries/Animated/AnimatedEvent'; import type { AnimationConfig, @@ -18,13 +17,14 @@ import type { AnimatedNodeConfig, EventMapping, } from '../../../Libraries/Animated/NativeAnimatedModule'; +import type {EventSubscription} from '../../../Libraries/vendor/emitter/EventEmitter'; -import * as ReactNativeFeatureFlags from '../featureflags/ReactNativeFeatureFlags'; +import NativeAnimatedNonTurboModule from '../../../Libraries/Animated/NativeAnimatedModule'; +import NativeAnimatedTurboModule from '../../../Libraries/Animated/NativeAnimatedTurboModule'; import NativeEventEmitter from '../../../Libraries/EventEmitter/NativeEventEmitter'; import RCTDeviceEventEmitter from '../../../Libraries/EventEmitter/RCTDeviceEventEmitter'; import Platform from '../../../Libraries/Utilities/Platform'; -import NativeAnimatedNonTurboModule from '../../../Libraries/Animated/NativeAnimatedModule'; -import NativeAnimatedTurboModule from '../../../Libraries/Animated/NativeAnimatedTurboModule'; +import * as ReactNativeFeatureFlags from '../featureflags/ReactNativeFeatureFlags'; import invariant from 'invariant'; import nullthrows from 'nullthrows'; diff --git a/packages/@react-native-windows/automation-channel/package.json b/packages/@react-native-windows/automation-channel/package.json index 8fd87af27ec..01f497f030e 100644 --- a/packages/@react-native-windows/automation-channel/package.json +++ b/packages/@react-native-windows/automation-channel/package.json @@ -32,8 +32,8 @@ "just-scripts": "^1.3.2", "prettier": "2.8.8", "react": "19.0.0-rc-fb9a90fa48-20240614", - "react-native": "0.77.0-nightly-20241015-3485e9ed8", - "react-native-windows": "^0.0.0-canary.895", + "react-native": "0.77.0-nightly-20241020-e7a3f479f", + "react-native-windows": "^0.0.0-canary.892", "typescript": "5.0.4" }, "files": [ @@ -45,4 +45,4 @@ "engines": { "node": ">= 18" } -} +} \ No newline at end of file diff --git a/packages/@react-native-windows/tester/overrides.json b/packages/@react-native-windows/tester/overrides.json index a8ad9dbb60a..a6c0c4d547b 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.77.0-nightly-20241015-3485e9ed8", + "baseVersion": "0.77.0-nightly-20241020-e7a3f479f", "overrides": [ { "type": "derived", @@ -38,20 +38,20 @@ "type": "patch", "file": "src/js/examples/Image/ImageExample.windows.js", "baseFile": "packages/rn-tester/js/examples/Image/ImageExample.js", - "baseHash": "1c153f8b041749b012470f47811b5f97ce5b2502", + "baseHash": "7ec07d02972bb0ad7248d84cbe135c636d61dd6b", "issue": 12869 }, { "type": "patch", "file": "src/js/examples/Modal/ModalOnShow.windows.js", "baseFile": "packages/rn-tester/js/examples/Modal/ModalOnShow.js", - "baseHash": "c40af9ce3741cdaf040bcebf845cb482f2ccd197" + "baseHash": "911507abcf9172b5fdd1bb68faaf02562df704d4" }, { "type": "patch", "file": "src/js/examples/Modal/ModalPresentation.windows.js", "baseFile": "packages/rn-tester/js/examples/Modal/ModalPresentation.js", - "baseHash": "d25e22b917ec92b9e792bf3d0663c8a1b2bba14d" + "baseHash": "236557b5a3db2a29f82b0c3c2672dfb81a2e4d96" }, { "type": "patch", @@ -77,20 +77,20 @@ "type": "derived", "file": "src/js/examples/Touchable/TouchableExample.windows.js", "baseFile": "packages/rn-tester/js/examples/Touchable/TouchableExample.js", - "baseHash": "727e3386abd5bd793225c2f7c4e7a273b6a8ff19" + "baseHash": "19ff0caab9ea1a766b7c72566c4b08e7aaf338c1" }, { "type": "patch", "file": "src/js/examples/TurboModule/SampleTurboModuleExample.windows.js", "baseFile": "packages/rn-tester/js/examples/TurboModule/SampleTurboModuleExample.js", - "baseHash": "e4030ff7f2c505bd76020105b047c0a9cf9ecaff", + "baseHash": "10d44f85e6fbdab7620a7ce4f6ca2d8f43e8de19", "issue": 0 }, { "type": "patch", "file": "src/js/examples/View/ViewExample.windows.js", "baseFile": "packages/rn-tester/js/examples/View/ViewExample.js", - "baseHash": "dd78c35a737bcbfb8b2732d16f5c06c77b895ffc" + "baseHash": "3ba083555cbf2bed28a325f7d91b2c9a3250dedc" }, { "type": "copy", @@ -103,7 +103,7 @@ "type": "derived", "file": "src/js/utils/RNTesterList.windows.js", "baseFile": "packages/rn-tester/js/utils/RNTesterList.android.js", - "baseHash": "a4a186470316624bcd693e7f8b67739f87e5729c" + "baseHash": "27576bedd435d2e9f130ebfdf8e872d30f0b7855" } ] } \ No newline at end of file diff --git a/packages/@react-native-windows/tester/package.json b/packages/@react-native-windows/tester/package.json index 673fefa1a4a..eb8981b3074 100644 --- a/packages/@react-native-windows/tester/package.json +++ b/packages/@react-native-windows/tester/package.json @@ -19,8 +19,8 @@ "peerDependencies": { "@react-native-picker/picker": "2.4.10", "react": "18.0.0", - "react-native": "0.77.0-nightly-20241015-3485e9ed8", - "react-native-windows": "^0.0.0-canary.895", + "react-native": "0.77.0-nightly-20241020-e7a3f479f", + "react-native-windows": "^0.0.0-canary.892", "react-native-xaml": "^0.0.78" }, "devDependencies": { @@ -32,7 +32,7 @@ "@types/node": "^18.0.0", "eslint": "^8.19.0", "just-scripts": "^1.3.3", - "react-native": "0.77.0-nightly-20241015-3485e9ed8", + "react-native": "0.77.0-nightly-20241020-e7a3f479f", "react-native-platform-override": "^1.9.49", "react-native-windows": "^0.0.0-canary.895", "typescript": "5.0.4" @@ -40,4 +40,4 @@ "engines": { "node": ">= 18" } -} +} \ No newline at end of file diff --git a/packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js index 72d5371473d..fe26e9586c9 100644 --- a/packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js +++ b/packages/@react-native-windows/tester/src/js/examples/Image/ImageExample.windows.js @@ -13,12 +13,11 @@ import type {ImageProps} from 'react-native/Libraries/Image/ImageProps'; import type {LayoutEvent} from 'react-native/Libraries/Types/CoreEventTypes'; -import * as ReactNativeFeatureFlags from 'react-native/src/private/featureflags/ReactNativeFeatureFlags'; - import RNTesterText from '../../components/RNTesterText'; import ImageCapInsetsExample from './ImageCapInsetsExample'; import React from 'react'; import {Image, ImageBackground, StyleSheet, Text, View} from 'react-native'; +import * as ReactNativeFeatureFlags from 'react-native/src/private/featureflags/ReactNativeFeatureFlags'; const IMAGE1 = 'https://www.facebook.com/assets/fb_lite_messaging/E2EE-settings@3x.png'; diff --git a/packages/@react-native-windows/tester/src/js/examples/Modal/ModalOnShow.windows.js b/packages/@react-native-windows/tester/src/js/examples/Modal/ModalOnShow.windows.js index a6f0236ec5a..97afc692b3a 100644 --- a/packages/@react-native-windows/tester/src/js/examples/Modal/ModalOnShow.windows.js +++ b/packages/@react-native-windows/tester/src/js/examples/Modal/ModalOnShow.windows.js @@ -11,7 +11,6 @@ import type {RNTesterModuleExample} from '../../types/RNTesterTypes'; import RNTesterText from '../../components/RNTesterText'; - import * as React from 'react'; import {Modal, Pressable, StyleSheet, Text, View} from 'react-native'; diff --git a/packages/@react-native-windows/tester/src/js/examples/Modal/ModalPresentation.windows.js b/packages/@react-native-windows/tester/src/js/examples/Modal/ModalPresentation.windows.js index aa78521cffd..7543b357bb5 100644 --- a/packages/@react-native-windows/tester/src/js/examples/Modal/ModalPresentation.windows.js +++ b/packages/@react-native-windows/tester/src/js/examples/Modal/ModalPresentation.windows.js @@ -13,10 +13,10 @@ import type {RNTesterModuleExample} from '../../types/RNTesterTypes'; import type {Props as ModalProps} from 'react-native/Libraries/Modal/Modal'; -import RNTOption from '../../components/RNTOption'; import RNTesterButton from '../../components/RNTesterButton'; import RNTesterText from '../../components/RNTesterText'; import {RNTesterThemeContext} from '../../components/RNTesterTheme'; +import RNTOption from '../../components/RNTOption'; import * as React from 'react'; import {useCallback, useContext, useState} from 'react'; import {Modal, Platform, StyleSheet, Switch, Text, View} from 'react-native'; @@ -39,19 +39,19 @@ const supportedOrientations = [ const backdropColors = ['red', 'blue', undefined]; function ModalPresentation() { - const onDismiss = React.useCallback(() => { + const onDismiss = useCallback(() => { alert('onDismiss'); }, []); - const onShow = React.useCallback(() => { + const onShow = useCallback(() => { alert('onShow'); }, []); - const onRequestClose = React.useCallback(() => { + const onRequestClose = useCallback(() => { console.log('onRequestClose'); }, []); - const [props, setProps] = React.useState({ + const [props, setProps] = useState({ animationType: 'none', transparent: false, hardwareAccelerated: false, @@ -67,6 +67,7 @@ function ModalPresentation() { onDismiss: undefined, onShow: undefined, visible: false, + backdropColor: undefined, }); const presentationStyle = props.presentationStyle; const hardwareAccelerated = props.hardwareAccelerated; @@ -74,11 +75,12 @@ function ModalPresentation() { const backdropColor = props.backdropColor; const backgroundColor = useContext(RNTesterThemeContext).BackgroundColor; - const [currentOrientation, setCurrentOrientation] = React.useState('unknown'); + const [currentOrientation, setCurrentOrientation] = useState('unknown'); - /* $FlowFixMe[missing-local-annot] The type annotation(s) required by Flow's - * LTI update could not be added via codemod */ - const onOrientationChange = event => + type OrientationChangeEvent = Parameters< + $NonMaybeType['onOrientationChange']>, + >[0]; + const onOrientationChange = (event: OrientationChangeEvent) => setCurrentOrientation(event.nativeEvent.orientation); const controls = ( diff --git a/packages/@react-native-windows/tester/src/js/examples/Touchable/TouchableExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/Touchable/TouchableExample.windows.js index 5dcf3bbd1ef..992020d2b5a 100644 --- a/packages/@react-native-windows/tester/src/js/examples/Touchable/TouchableExample.windows.js +++ b/packages/@react-native-windows/tester/src/js/examples/Touchable/TouchableExample.windows.js @@ -8,9 +8,9 @@ * @flow */ -import {useEffect, useRef, useState} from 'react'; - +import RNTesterText from '../../components/RNTesterText'; import React from 'react'; +import {useEffect, useRef, useState} from 'react'; import { Animated, Image, @@ -22,7 +22,6 @@ import { TouchableWithoutFeedback, View, } from 'react-native'; -import RNTesterText from '../../components/RNTesterText'; const forceTouchAvailable = (Platform.OS === 'ios' && Platform.constants.forceTouchAvailable) || false; diff --git a/packages/@react-native-windows/tester/src/js/examples/TurboModule/SampleTurboModuleExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/TurboModule/SampleTurboModuleExample.windows.js index 7623baa0e1c..cc3b1eadf03 100644 --- a/packages/@react-native-windows/tester/src/js/examples/TurboModule/SampleTurboModuleExample.windows.js +++ b/packages/@react-native-windows/tester/src/js/examples/TurboModule/SampleTurboModuleExample.windows.js @@ -11,8 +11,8 @@ import type {RootTag} from 'react-native/Libraries/ReactNative/RootTag'; import type {EventSubscription} from 'react-native/Libraries/vendor/emitter/EventEmitter'; -import styles from './TurboModuleExampleCommon'; import RNTesterText from '../../components/RNTesterText'; +import styles from './TurboModuleExampleCommon'; import * as React from 'react'; import {FlatList, RootTagContext, TouchableOpacity, View} from 'react-native'; import NativeSampleTurboModule from 'react-native/Libraries/TurboModule/samples/NativeSampleTurboModule'; diff --git a/packages/@react-native-windows/tester/src/js/examples/View/ViewExample.windows.js b/packages/@react-native-windows/tester/src/js/examples/View/ViewExample.windows.js index a677a8cc8f8..00dda976ee1 100644 --- a/packages/@react-native-windows/tester/src/js/examples/View/ViewExample.windows.js +++ b/packages/@react-native-windows/tester/src/js/examples/View/ViewExample.windows.js @@ -13,10 +13,9 @@ import type {RNTesterModule} from '../../types/RNTesterTypes'; import RNTesterText from '../../components/RNTesterText'; - import * as React from 'react'; -import {Alert, Platform, Pressable, StyleSheet, Text, View} from 'react-native'; +import {Alert, Platform, Pressable, StyleSheet, View} from 'react-native'; class ViewBorderStyleExample extends React.Component< $ReadOnly<{||}>, @@ -600,16 +599,20 @@ class AccessibilityExample extends React.Component< this.setState({expanded: !this.state.expanded}); console.log('Pressed'); }}> - A View with accessibility values. - Current Number of Accessibility Taps: {this.state.tap} + A View with accessibility values. + + Current Number of Accessibility Taps: {this.state.tap} + - This element should be hidden from accessibility. + + This element should be hidden from accessibility. + - + This sub-view should not have an accessibility value. It's control type does not support the value pattern. - + ); @@ -1379,7 +1382,7 @@ export default ({ testID="nativeid" accessible accessibilityLabel="NativeID Example"> - A View with a nativeID "native-id-view" + A View with a nativeID "native-id-view" ); }, @@ -1425,18 +1428,18 @@ export default ({ testID="tool-tip" accessible accessibilityLabel="Tooltip Example"> - + This Parent View has tooltip "Parent View" - + - + This view has tooltip "Child View 1" - + - + This view has tooltip "Child View 2" - + ); diff --git a/packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js b/packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js index d6c1e7a705e..82e7bffd070 100644 --- a/packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js +++ b/packages/@react-native-windows/tester/src/js/utils/RNTesterList.windows.js @@ -7,7 +7,7 @@ 'use strict'; -import type {RNTesterModuleInfo, RNTesterModule} from '../types/RNTesterTypes'; +import type {RNTesterModule, RNTesterModuleInfo} from '../types/RNTesterTypes'; import ReactNativeFeatureFlags from 'react-native/Libraries/ReactNative/ReactNativeFeatureFlags'; diff --git a/packages/@react-native/monorepo/overrides.json b/packages/@react-native/monorepo/overrides.json index 3d5c2f8c065..dd419d0ccfd 100644 --- a/packages/@react-native/monorepo/overrides.json +++ b/packages/@react-native/monorepo/overrides.json @@ -1,11 +1,11 @@ { - "baseVersion": "0.77.0-nightly-20241015-3485e9ed8", + "baseVersion": "0.77.0-nightly-20241020-e7a3f479f", "overrides": [ { "type": "patch", "file": "package.json", "baseFile": "package.json", - "baseHash": "6488c9d0b00fd7157003d4aee6b62b2b32ef2606" + "baseHash": "cf96be7d211254747cf464d574779dd33dd32d69" } ] } \ No newline at end of file diff --git a/packages/@react-native/monorepo/package.json b/packages/@react-native/monorepo/package.json index 94a7923f9ec..34eb22b0e41 100644 --- a/packages/@react-native/monorepo/package.json +++ b/packages/@react-native/monorepo/package.json @@ -3,6 +3,7 @@ "private": true, "version": "1000.0.0", "license": "MIT", + "packageManager": "yarn@1.22.22", "scripts": { "android": "cd packages/rn-tester && npm run android", "build-android": "./gradlew :packages:react-native:ReactAndroid:build", @@ -47,8 +48,8 @@ "@definitelytyped/dtslint": "^0.0.127", "@jest/create-cache-key-function": "^29.6.3", "@pkgjs/parseargs": "^0.11.0", - "@react-native/metro-babel-transformer": "0.77.0-nightly-20241015-3485e9ed8", - "@react-native/metro-config": "0.77.0-nightly-20241015-3485e9ed8", + "@react-native/metro-babel-transformer": "0.77.0-nightly-20241020-e7a3f479f", + "@react-native/metro-config": "0.77.0-nightly-20241020-e7a3f479f", "@tsconfig/node18": "1.0.1", "@types/react": "^18.2.6", "@typescript-eslint/parser": "^7.1.1", @@ -75,7 +76,7 @@ "eslint-plugin-redundant-undefined": "^0.4.0", "eslint-plugin-relay": "^1.8.3", "flow-api-translator": "0.24.0", - "flow-bin": "^0.248.1", + "flow-bin": "^0.250.0", "glob": "^7.1.1", "hermes-eslint": "0.24.0", "hermes-transform": "0.24.0", @@ -103,4 +104,4 @@ "resolutions": { "react-is": "19.0.0-rc-fb9a90fa48-20240614" } -} +} \ No newline at end of file diff --git a/packages/@react-native/tester/NativeComponentExample/js/MyNativeView.js b/packages/@react-native/tester/NativeComponentExample/js/MyNativeView.js index 0ab8d56c298..5fe7c46c2dd 100644 --- a/packages/@react-native/tester/NativeComponentExample/js/MyNativeView.js +++ b/packages/@react-native/tester/NativeComponentExample/js/MyNativeView.js @@ -110,6 +110,7 @@ export default function MyNativeView(props: {}): React.Node { useState(MeasureStructZero); const [legacyMeasureLayout, setLegacyMeasureLayout] = useState(MeasureStructZero); + const [legacyStyleEventCount, setLegacyStyleEventCount] = useState(0); return ( @@ -130,6 +131,7 @@ export default function MyNativeView(props: {}): React.Node { console.log(event.nativeEvent.multiArrays); }} onLegacyStyleEvent={event => { + setLegacyStyleEventCount(prevCount => prevCount + 1); console.log(event.nativeEvent.string); }} /> @@ -164,6 +166,9 @@ export default function MyNativeView(props: {}): React.Node { Constants From Interop Layer:{' '} {UIManager.getViewManagerConfig('RNTMyLegacyNativeView').Constants.PI} + + Opacity: {opacity.toFixed(1)} +