Integrate RN Nightly Build 1/22 (#12761)

* Integrate 1/16

* Integrate 1/20

* Save State 2/22

* Change files

* Fix Build Errors Part 1

* Fix Build Part 2

* Update Snapshots

* Fix Build 3

* Fix Build 4

* Re-Integrate After Coates Commit

* Change files

* Resolve E2E Test Failure

* Fix Build 4

* fix yarn format to respect existing .clang-format files

* fix codegen's clang format file?

* remove vnext/codegen from clang formatting

* Change files

* remove codegen folder

* Revert "remove codegen folder"

This reverts commit 3159bf1180.

* Fix E2E Tests

* Fix E2E Tests

* Revert "Fix E2E Tests"

This reverts commit 261bef2af5.

* Fix E2E Tests

* fix linting for real this time

* really really fix linting

* fix flow-checks

* Fix init-windows cli command

* Fix Broken Alert Module

* remove checked-in copied file

* stablize flow check

* Address Andrew's Feedback

---------

Co-authored-by: Jon Thysell (JAUNTY) <jthysell@microsoft.com>
This commit is contained in:
Chiara Mooney 2024-02-29 16:40:50 -08:00 коммит произвёл GitHub
Родитель 06b8842c48
Коммит 1a0c176131
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
82 изменённых файлов: 7651 добавлений и 6512 удалений

Просмотреть файл

@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "Integrate 1/22",
"packageName": "@office-iss/react-native-win32",
"email": "34109996+chiaramooney@users.noreply.github.com",
"dependentChangeType": "patch"
}

Просмотреть файл

@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "Integrate 1/22",
"packageName": "@react-native-windows/automation-channel",
"email": "34109996+chiaramooney@users.noreply.github.com",
"dependentChangeType": "patch"
}

Просмотреть файл

@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "Integrate 1/22",
"packageName": "@rnw-scripts/eslint-config",
"email": "34109996+chiaramooney@users.noreply.github.com",
"dependentChangeType": "patch"
}

Просмотреть файл

@ -0,0 +1,7 @@
{
"type": "patch",
"comment": "Integrate 1/22",
"packageName": "@rnw-scripts/just-task",
"email": "34109996+chiaramooney@users.noreply.github.com",
"dependentChangeType": "patch"
}

Просмотреть файл

@ -0,0 +1,7 @@
{
"type": "prerelease",
"comment": "Integrate 1/22",
"packageName": "react-native-windows",
"email": "34109996+chiaramooney@users.noreply.github.com",
"dependentChangeType": "patch"
}

Просмотреть файл

@ -9,7 +9,7 @@
"change": "beachball change",
"clean": "lage clean",
"doc": "doxysaurus --config vnext/doxysaurus.json",
"format": "format-files -i -style=file -assume-filename=../.clang-format",
"format": "format-files -i -style=file",
"format:verify": "format-files -i -style=file -verify",
"postinstall": "yarn build",
"spellcheck": "npx cspell",

Просмотреть файл

@ -5,7 +5,7 @@
"excludePatterns": [
"src/js/examples-win32/**"
],
"baseVersion": "0.74.0-nightly-20240115-0c7008f28",
"baseVersion": "0.74.0-nightly-20240122-4e92f87df",
"overrides": [
{
"type": "patch",

Просмотреть файл

@ -19,7 +19,7 @@
"peerDependencies": {
"@office-iss/react-native-win32": "^0.0.0-canary.234",
"react": "18.0.0",
"react-native": "0.74.0-nightly-20240115-0c7008f28"
"react-native": "0.74.0-nightly-20240122-4e92f87df"
},
"devDependencies": {
"@office-iss/react-native-win32": "^0.0.0-canary.234",
@ -30,7 +30,7 @@
"@types/node": "^18.0.0",
"eslint": "^8.19.0",
"just-scripts": "^1.3.3",
"react-native": "0.74.0-nightly-20240115-0c7008f28",
"react-native": "0.74.0-nightly-20240122-4e92f87df",
"react-native-platform-override": "^1.9.22",
"typescript": "5.0.4"
},

Просмотреть файл

@ -67,6 +67,9 @@
; Ignore the src-win folder - flow files are combined with ones from react-native into the root Libraries folder
.*/react-native-win32/src-win/.*
; Ignore the private __tests__ (until this is fixed: https://github.com/facebook/react-native/issues/43242)
.*/react-native-win32/src/private/.*/__tests__/.*
; Ignore files with flow typing issues #9223
.*/react-native-win32/Libraries/Core/ReactNativeVersionCheck.js
@ -151,4 +154,4 @@ untyped-import
untyped-type-import
[version]
^0.226.0
^0.227.0

Просмотреть файл

@ -12,5 +12,6 @@
/types
/typings-index.*
/rntypes
/src
/src-win/rntypes
/rn-get-polyfills.js

Просмотреть файл

@ -7,13 +7,13 @@
"**/__snapshots__/**",
"src-win/rntypes/**"
],
"baseVersion": "0.74.0-nightly-20240115-0c7008f28",
"baseVersion": "0.74.0-nightly-20240122-4e92f87df",
"overrides": [
{
"type": "derived",
"file": ".flowconfig",
"baseFile": ".flowconfig",
"baseHash": "c8d51e03c7f984398c710769a282b9e28d3030b2"
"baseHash": "a243aa54de1d5c568bac704249159975dcc2ccd7"
},
{
"type": "derived",
@ -61,7 +61,7 @@
"type": "derived",
"file": "src-win/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfoWin32.js",
"baseFile": "packages/react-native/Libraries/Components/AccessibilityInfo/NativeAccessibilityInfo.js",
"baseHash": "9427a7feebfbe3de606b2d100439cabf2faa8661"
"baseHash": "c3b9975c5fe1c91712fe70546c7b06a1e78cea77"
},
{
"type": "derived",
@ -263,7 +263,7 @@
"type": "derived",
"file": "src-win/Libraries/Image/NativeImageLoaderWin32.js",
"baseFile": "packages/react-native/Libraries/Image/NativeImageLoaderIOS.js",
"baseHash": "d4720d31916ce29c66a1c06906343e31fcd45036",
"baseHash": "a6f98dd6f021e1fbfbcdff29b695d2144fdf6559",
"issue": 4320
},
{
@ -306,13 +306,13 @@
"type": "patch",
"file": "src-win/Libraries/Inspector/Inspector.win32.js",
"baseFile": "packages/react-native/Libraries/Inspector/Inspector.js",
"baseHash": "db79965ed999c40d6bebaf1860a0921749d54b4f"
"baseHash": "41f9953cffe7c0e9dace1f10074136cc169a94ad"
},
{
"type": "patch",
"file": "src-win/Libraries/Inspector/InspectorOverlay.win32.js",
"baseFile": "packages/react-native/Libraries/Inspector/InspectorOverlay.js",
"baseHash": "b2d22b7a448802373d619df28cf8a70756c0ce33"
"baseHash": "cd2de764e83b79451a3ac0583bd93d5ebb6d36f2"
},
{
"type": "derived",
@ -493,25 +493,43 @@
"type": "derived",
"file": "src-win/Libraries/Utilities/NativePlatformConstantsWin.js",
"baseFile": "packages/react-native/Libraries/Utilities/NativePlatformConstantsIOS.js",
"baseHash": "d618776f5251597b9fa13c55be27e09f3ceccdf3"
"baseHash": "7b9db1bdc43128938d261961e3765c24d17e68b6"
},
{
"type": "derived",
"file": "src-win/Libraries/Utilities/Platform.flow.win32.js",
"baseFile": "packages/react-native/Libraries/Utilities/Platform.flow.js",
"baseHash": "48e0b6dd625aa58347266a362eb404ddd47b59d4"
"baseHash": "d07d4656dc872e92e873bcce248262132085bd99"
},
{
"type": "derived",
"file": "src-win/Libraries/Utilities/Platform.win32.js",
"baseFile": "packages/react-native/Libraries/Utilities/Platform.android.js",
"baseHash": "a09b2fdd9859584069281df3311ef188a5640b00"
"baseHash": "3c959f078048e8a9cbd6d0463071c2208597ab8a"
},
{
"type": "copy",
"file": "src-win/Libraries/Utilities/useMergeRefs.js",
"baseFile": "packages/react-native/Libraries/Utilities/useMergeRefs.js",
"baseHash": "1f1ca637132e6e0fe1549ba520d98508269ca2bd"
},
{
"type": "derived",
"file": "src-win/src/private/specs/modules/NativeAccessibilityInfo.win32.js",
"baseFile": "packages/react-native/src/private/specs/modules/NativeAccessibilityInfo.js",
"baseHash": "3c15b48f632de6b939697ae114734cc54e003027"
},
{
"type": "derived",
"file": "src-win/src/private/specs/modules/NativeImageLoaderWin32.js",
"baseFile": "packages/react-native/src/private/specs/modules/NativeImageLoaderAndroid.js",
"baseHash": "70bc73bc81592060ccbaffc0ff9f612d16c39c6c"
},
{
"type": "derived",
"file": "src-win/src/private/specs/modules/NativePlatformConstantsWin.js",
"baseFile": "packages/react-native/src/private/specs/modules/NativePlatformConstantsAndroid.js",
"baseHash": "b4a125d9134f33aeaba9e06988e18cbb0b4e9e9c"
}
]
}

Просмотреть файл

@ -30,13 +30,13 @@
"@react-native-community/cli-platform-android": "13.0.0",
"@react-native-community/cli-platform-ios": "13.0.0",
"@react-native/assets": "1.0.0",
"@react-native/assets-registry": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/codegen": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/community-cli-plugin": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/gradle-plugin": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/js-polyfills": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/normalize-colors": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/virtualized-lists": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/assets-registry": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/codegen": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/community-cli-plugin": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/gradle-plugin": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/js-polyfills": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/normalize-colors": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/virtualized-lists": "0.74.0-nightly-20240122-4e92f87df",
"abort-controller": "^3.0.0",
"anser": "^1.4.9",
"ansi-regex": "^5.0.0",
@ -56,7 +56,7 @@
"pretty-format": "^26.5.2",
"promise": "^8.3.0",
"react-clone-referenced-element": "^1.0.1",
"react-devtools-core": "^4.27.7",
"react-devtools-core": "^5.0.0",
"react-refresh": "^0.14.0",
"react-shallow-renderer": "^16.15.0",
"regenerator-runtime": "^0.13.2",
@ -69,7 +69,7 @@
"devDependencies": {
"@babel/core": "^7.20.0",
"@babel/eslint-parser": "^7.20.0",
"@react-native/metro-config": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/metro-config": "0.74.0-nightly-20240122-4e92f87df",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.6",
"@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.10",
@ -85,13 +85,13 @@
"just-scripts": "^1.3.3",
"prettier": "2.8.8",
"react": "18.2.0",
"react-native": "0.74.0-nightly-20240115-0c7008f28",
"react-native": "0.74.0-nightly-20240122-4e92f87df",
"react-native-platform-override": "^1.9.22",
"typescript": "5.0.4"
},
"peerDependencies": {
"react": "18.2.0",
"react-native": "0.74.0-nightly-20240115-0c7008f28"
"react-native": "0.74.0-nightly-20240122-4e92f87df"
},
"beachball": {
"defaultNpmTag": "canary",

Просмотреть файл

@ -6,32 +6,6 @@
* @flow
*/
import type {TurboModule} from '../../TurboModule/RCTExport';
import * as TurboModuleRegistry from '../../TurboModule/TurboModuleRegistry';
export interface Spec extends TurboModule {
+isReduceMotionEnabled: (
onSuccess: (isReduceMotionEnabled: boolean) => void,
) => void;
+isTouchExplorationEnabled: (
onSuccess: (isScreenReaderEnabled: boolean) => void,
) => void;
+isAccessibilityServiceEnabled?: ?(
onSuccess: (isAccessibilityServiceEnabled: boolean) => void,
) => void;
+setAccessibilityFocus: (reactTag: number) => void;
+announceForAccessibility: (announcement: string) => void;
// [Win32
+announceForAccessibilityWithOptions?: (
announcement: string,
options: {queue?: boolean, nativeID?: string},
) => void;
// Win32]
+getRecommendedTimeoutMillis?: (
mSec: number,
onSuccess: (recommendedTimeoutMillis: number) => void,
) => void;
}
export default (TurboModuleRegistry.get<Spec>('AccessibilityInfo'): ?Spec);
export * from '../../../src/private/specs/modules/NativeAccessibilityInfo';
import NativeAccessibilityInfo from '../../../src/private/specs/modules/NativeAccessibilityInfo';
export default NativeAccessibilityInfo;

Просмотреть файл

@ -4,42 +4,10 @@
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
* @flow strict-local
* @format
*/
import type {RootTag} from '../TurboModule/RCTExport';
import type {TurboModule} from '../TurboModule/RCTExport';
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
export interface Spec extends TurboModule {
+getConstants: () => {||};
// [Win32 uses callback instead of promise
+getSize: (
uri: string,
callback: (width: number, height: number, err?: string) => void,
) => void;
// Win32]
// [Win32 These aren't actually implemented, and will just blow up if called
// currently.
+getSizeWithHeaders: (
uri: string,
headers: Object,
) => Promise<{
width: number,
height: number,
...
}>;
+prefetchImage: (uri: string) => Promise<boolean>;
+prefetchImageWithMetadata?: (
uri: string,
queryRootName: string,
rootTag: RootTag,
) => Promise<boolean>;
+queryCache: (uris: Array<string>) => Promise<Object>;
// Win32]
}
export default (TurboModuleRegistry.getEnforcing<Spec>('ImageLoader'): Spec);
export * from '../../src/private/specs/modules/NativeImageLoaderWin32';
import NativeImageLoaderWin32 from '../../src/private/specs/modules/NativeImageLoaderWin32';
export default NativeImageLoaderWin32;

Просмотреть файл

@ -10,6 +10,7 @@
'use strict';
import type {InspectedViewRef} from '../ReactNative/AppContainer-dev';
import type {
InspectorData,
TouchedViewDataAtPoint,
@ -46,7 +47,7 @@ export type InspectedElement = $ReadOnly<{
export type ElementsHierarchy = InspectorData['hierarchy'];
type Props = {
inspectedViewRef: React.RefObject<React.ElementRef<typeof View> | null>,
inspectedViewRef: InspectedViewRef,
onRequestRerenderApp: () => void,
reactDevToolsAgent?: ReactDevToolsAgent,
};

Просмотреть файл

@ -61,6 +61,7 @@ const styles = StyleSheet.create({
left: 0,
top: 0,
right: 0,
bottom: 0,
},
});

Просмотреть файл

@ -6,30 +6,6 @@
* @flow strict
*/
import type {TurboModule} from '../TurboModule/RCTExport';
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
export type PlatformConstantsWin32 = {|
isTesting: boolean,
isDisableAnimations?: boolean,
reactNativeVersion: {|
major: number,
minor: number,
patch: number,
prerelease: ?string | number,
|},
forceTouchAvailable: boolean,
osVersion: number,
systemName: string,
interfaceIdiom: string,
isMacCatalyst?: boolean,
|};
export interface Spec extends TurboModule {
+getConstants: () => PlatformConstantsWin32;
}
export default (TurboModuleRegistry.getEnforcing<Spec>(
'PlatformConstants',
): Spec);
export * from '../../src/private/specs/modules/NativePlatformConstantsWin';
import NativePlatformConstantsWin from '../../src/private/specs/modules/NativePlatformConstantsWin';
export default NativePlatformConstantsWin;

Просмотреть файл

@ -43,6 +43,8 @@ type IOSPlatform = {
// $FlowFixMe[unsafe-getters-setters]
get isTV(): boolean,
// $FlowFixMe[unsafe-getters-setters]
get isVision(): boolean,
// $FlowFixMe[unsafe-getters-setters]
get isTesting(): boolean,
// $FlowFixMe[unsafe-getters-setters]
get isDisableAnimations(): boolean,
@ -79,6 +81,8 @@ type AndroidPlatform = {
// $FlowFixMe[unsafe-getters-setters]
get isTV(): boolean,
// $FlowFixMe[unsafe-getters-setters]
get isVision(): boolean,
// $FlowFixMe[unsafe-getters-setters]
get isTesting(): boolean,
// $FlowFixMe[unsafe-getters-setters]
get isDisableAnimations(): boolean,

Просмотреть файл

@ -63,6 +63,10 @@ const Platform: PlatformType = {
// $FlowFixMe[object-this-reference]
return false;
},
// $FlowFixMe[unsafe-getters-setters]
get isVision(): boolean {
return false;
},
select: <T>(spec: PlatformSelectSpec<T>): T =>
'win32' in spec
? // $FlowFixMe[incompatible-return]

Просмотреть файл

@ -0,0 +1,39 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow strict
* @format
*/
import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport';
import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry';
export interface Spec extends TurboModule {
+isReduceMotionEnabled: (
onSuccess: (isReduceMotionEnabled: boolean) => void,
) => void;
+isTouchExplorationEnabled: (
onSuccess: (isScreenReaderEnabled: boolean) => void,
) => void;
+isAccessibilityServiceEnabled?: ?(
onSuccess: (isAccessibilityServiceEnabled: boolean) => void,
) => void;
+setAccessibilityFocus: (reactTag: number) => void;
+announceForAccessibility: (announcement: string) => void;
// [Win32
+announceForAccessibilityWithOptions?: (
announcement: string,
options: {queue?: boolean, nativeID?: string},
) => void;
// Win32]
+getRecommendedTimeoutMillis?: (
mSec: number,
onSuccess: (recommendedTimeoutMillis: number) => void,
) => void;
}
export default (TurboModuleRegistry.get<Spec>('AccessibilityInfo'): ?Spec);

Просмотреть файл

@ -0,0 +1,45 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
* @format
*/
import type {RootTag} from '../../../../Libraries/TurboModule/RCTExport';
import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport';
import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry';
export interface Spec extends TurboModule {
+getConstants: () => {||};
// [Win32 uses callback instead of promise
+getSize: (
uri: string,
callback: (width: number, height: number, err?: string) => void,
) => void;
// Win32]
// [Win32 These aren't actually implemented, and will just blow up if called
// currently.
+getSizeWithHeaders: (
uri: string,
headers: Object,
) => Promise<{
width: number,
height: number,
...
}>;
+prefetchImage: (uri: string) => Promise<boolean>;
+prefetchImageWithMetadata?: (
uri: string,
queryRootName: string,
rootTag: RootTag,
) => Promise<boolean>;
+queryCache: (uris: Array<string>) => Promise<Object>;
// Win32]
}
export default (TurboModuleRegistry.getEnforcing<Spec>('ImageLoader'): Spec);

Просмотреть файл

@ -0,0 +1,37 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow strict
* @format
*/
import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport';
import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry';
export type PlatformConstantsWin32 = {|
isTesting: boolean,
isDisableAnimations?: boolean,
reactNativeVersion: {|
major: number,
minor: number,
patch: number,
prerelease: ?string | number,
|},
forceTouchAvailable: boolean,
osVersion: number,
systemName: string,
interfaceIdiom: string,
isMacCatalyst?: boolean,
|};
export interface Spec extends TurboModule {
+getConstants: () => PlatformConstantsWin32;
}
export default (TurboModuleRegistry.getEnforcing<Spec>(
'PlatformConstants',
): Spec);

Просмотреть файл

@ -31,7 +31,7 @@
"just-scripts": "^1.3.2",
"prettier": "2.8.8",
"react": "18.2.0",
"react-native": "0.74.0-nightly-20240115-0c7008f28",
"react-native": "0.74.0-nightly-20240122-4e92f87df",
"react-native-windows": "^0.0.0-canary.779",
"typescript": "5.0.4"
},

Просмотреть файл

@ -2,21 +2,21 @@
"version": 1,
"dependencies": {
"native,Version=v0.0": {
"Microsoft.UI.Xaml": {
"type": "Direct",
"requested": "[2.8.0, )",
"resolved": "2.8.0",
"contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==",
"dependencies": {
"Microsoft.Web.WebView2": "1.0.1264.42"
}
},
"Microsoft.Windows.CppWinRT": {
"type": "Direct",
"requested": "[2.0.211028.7, )",
"resolved": "2.0.211028.7",
"contentHash": "JBGI0c3WLoU6aYJRy9Qo0MLDQfObEp+d4nrhR95iyzf7+HOgjRunHDp/6eGFREd7xq3OI1mll9ecJrMfzBvlyg=="
},
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
},
"boost": {
"type": "Transitive",
"resolved": "1.76.0",
@ -46,10 +46,10 @@
"Microsoft.SourceLink.Common": "1.1.1"
}
},
"Microsoft.Web.WebView2": {
"Microsoft.Windows.SDK.BuildTools": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"resolved": "10.0.22621.1",
"contentHash": "Sp1DkYvg7yxuhamwxv+qFC66KC3paKQpwK8Q1J6XuAh6nzXIInmsDcpJ3szr0XGud4ysXojqwTfGdW01gvZ/0g=="
},
"common": {
"type": "Project",
@ -63,8 +63,8 @@
"folly": {
"type": "Project",
"dependencies": {
"boost": "[1.76.0, )",
"fmt": "[1.0.0, )"
"Fmt": "[1.0.0, )",
"boost": "[1.76.0, )"
}
},
"microsoft.reactnative": {
@ -74,7 +74,7 @@
"Folly": "[1.0.0, )",
"Microsoft.JavaScript.Hermes": "[0.1.18, )",
"Microsoft.SourceLink.GitHub": "[1.1.1, )",
"Microsoft.UI.Xaml": "[2.8.0, )",
"Microsoft.WindowsAppSDK": "[1.4.240211001, )",
"ReactCommon": "[1.0.0, )",
"boost": "[1.76.0, )"
}
@ -88,52 +88,80 @@
}
},
"native,Version=v0.0/win10-arm": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
},
"native,Version=v0.0/win10-arm-aot": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
},
"native,Version=v0.0/win10-arm64-aot": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
},
"native,Version=v0.0/win10-x64": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
},
"native,Version=v0.0/win10-x64-aot": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
},
"native,Version=v0.0/win10-x86": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
},
"native,Version=v0.0/win10-x86-aot": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
}
}

Просмотреть файл

@ -5,7 +5,7 @@
"excludePatterns": [
"src/js/examples-win/**"
],
"baseVersion": "0.74.0-nightly-20240115-0c7008f28",
"baseVersion": "0.74.0-nightly-20240122-4e92f87df",
"overrides": [
{
"type": "derived",
@ -45,7 +45,7 @@
"type": "patch",
"file": "src/js/examples/View/ViewExample.windows.js",
"baseFile": "packages/rn-tester/js/examples/View/ViewExample.js",
"baseHash": "30d55506dc740a7b6dcd1cd5fc26a43f3eb8f384"
"baseHash": "e31526a7ff0ae0a0642d274c1fd93b21c8749c39"
},
{
"type": "copy",

Просмотреть файл

@ -18,7 +18,7 @@
"peerDependencies": {
"@react-native-picker/picker": "2.4.10",
"react": "18.0.0",
"react-native": "0.74.0-nightly-20240115-0c7008f28",
"react-native": "0.74.0-nightly-20240122-4e92f87df",
"react-native-windows": "^0.0.0-canary.779",
"react-native-xaml": "^0.0.78"
},
@ -31,7 +31,7 @@
"@types/node": "^18.0.0",
"eslint": "^8.19.0",
"just-scripts": "^1.3.3",
"react-native": "0.74.0-nightly-20240115-0c7008f28",
"react-native": "0.74.0-nightly-20240122-4e92f87df",
"react-native-platform-override": "^1.9.22",
"react-native-windows": "^0.0.0-canary.779",
"typescript": "5.0.4"

Просмотреть файл

@ -231,6 +231,78 @@ class ZIndexExample extends React.Component<
};
}
function PositionStaticZIndexExample(): React.Node {
return (
<View
testID="view-test-zindex-with-static"
style={{backgroundColor: 'yellow', flexDirection: 'row'}}>
<View
style={{
backgroundColor: 'red',
width: 100,
height: 100,
position: 'relative',
left: 10,
}}>
<View
style={{
backgroundColor: 'purple',
width: 50,
height: 50,
top: 30,
left: 65,
position: 'relative',
}}
/>
</View>
<View
style={{
backgroundColor: 'blue',
width: 100,
height: 100,
zIndex: 100,
position: 'static',
}}>
<View
style={{
backgroundColor: 'orange',
width: 50,
height: 50,
top: 10,
position: 'relative',
}}
/>
<View
style={{
backgroundColor: 'brown',
width: 50,
height: 50,
position: 'static',
}}>
<View
style={{
backgroundColor: 'black',
width: 25,
height: 25,
top: -10,
position: 'relative',
}}
/>
</View>
</View>
<View
style={{
backgroundColor: 'green',
width: 100,
height: 100,
position: 'relative',
left: -20,
}}
/>
</View>
);
}
class DisplayNoneStyle extends React.Component<
$ReadOnly<{||}>,
{|
@ -766,6 +838,11 @@ export default ({
return <ZIndexExample />;
},
},
{
title: 'ZIndex With Static',
name: 'zindex-with-static',
render: PositionStaticZIndexExample,
},
{
title: '`display: none` style',
name: 'display-none',

Просмотреть файл

@ -1,11 +1,11 @@
{
"baseVersion": "0.74.0-nightly-20240115-0c7008f28",
"baseVersion": "0.74.0-nightly-20240122-4e92f87df",
"overrides": [
{
"type": "patch",
"file": "package.json",
"baseFile": "package.json",
"baseHash": "7c06500c36cacabc464c76c5db926250814c3f78"
"baseHash": "95aff100a83795ddd1baad5fd3d170efb37048d0"
}
]
}

Просмотреть файл

@ -53,8 +53,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.74.0-nightly-20240115-0c7008f28",
"@react-native/metro-config": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/metro-babel-transformer": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/metro-config": "0.74.0-nightly-20240122-4e92f87df",
"@tsconfig/node18": "1.0.1",
"@types/react": "^18.2.6",
"@typescript-eslint/parser": "^6.7.4",
@ -82,7 +82,7 @@
"eslint-plugin-redundant-undefined": "^0.4.0",
"eslint-plugin-relay": "^1.8.3",
"flow-api-translator": "0.18.2",
"flow-bin": "^0.226.0",
"flow-bin": "^0.227.0",
"glob": "^7.1.1",
"hermes-eslint": "0.18.2",
"hermes-transform": "0.18.2",

Просмотреть файл

@ -8,15 +8,15 @@
* @flow strict-local
*/
import type ReadOnlyNode from 'react-native/Libraries/DOM/Nodes/ReadOnlyNode';
import type NodeList from 'react-native/Libraries/DOM/OldStyleCollections/NodeList';
import type ReadOnlyNode from 'react-native/src/private/webapis/dom/nodes/ReadOnlyNode';
import type NodeList from 'react-native/src/private/webapis/dom/oldstylecollections/NodeList';
import {RNTesterThemeContext} from '../../components/RNTesterTheme';
import * as React from 'react';
import {type ElementRef, useContext, useEffect, useRef, useState} from 'react';
import {Pressable, ScrollView, StyleSheet, Text, View} from 'react-native';
import ReadOnlyElement from 'react-native/Libraries/DOM/Nodes/ReadOnlyElement';
import MutationObserver from 'react-native/Libraries/MutationObserver/MutationObserver';
import ReadOnlyElement from 'react-native/src/private/webapis/dom/nodes/ReadOnlyElement';
export const name = 'MutationObserver Example';
export const title = name;

Просмотреть файл

@ -8,12 +8,12 @@
* @format
*/
import type DOMRectReadOnly from 'react-native/Libraries/DOM/Geometry/DOMRectReadOnly';
import type ReadOnlyNode from 'react-native/Libraries/DOM/Nodes/ReadOnlyNode';
import type DOMRectReadOnly from 'react-native/src/private/webapis/dom/geometry/DOMRectReadOnly';
import type ReadOnlyNode from 'react-native/src/private/webapis/dom/nodes/ReadOnlyNode';
import ReactNativeElement from 'react-native/Libraries/DOM/Nodes/ReactNativeElement';
import IntersectionObserver from 'react-native/Libraries/IntersectionObserver/IntersectionObserver';
import MutationObserver from 'react-native/Libraries/MutationObserver/MutationObserver';
import ReactNativeElement from 'react-native/src/private/webapis/dom/nodes/ReactNativeElement';
export type VisualElement = {
time: number,

Просмотреть файл

@ -21,7 +21,7 @@ import {
Text,
View,
} from 'react-native';
import ReactNativeElement from 'react-native/Libraries/DOM/Nodes/ReactNativeElement';
import ReactNativeElement from 'react-native/src/private/webapis/dom/nodes/ReactNativeElement';
export const name = 'Visual Completion Example';
export const title = name;

Просмотреть файл

@ -230,6 +230,78 @@ class ZIndexExample extends React.Component<
};
}
function PositionStaticZIndexExample(): React.Node {
return (
<View
testID="view-test-zindex-with-static"
style={{backgroundColor: 'yellow', flexDirection: 'row'}}>
<View
style={{
backgroundColor: 'red',
width: 100,
height: 100,
position: 'relative',
left: 10,
}}>
<View
style={{
backgroundColor: 'purple',
width: 50,
height: 50,
top: 30,
left: 65,
position: 'relative',
}}
/>
</View>
<View
style={{
backgroundColor: 'blue',
width: 100,
height: 100,
zIndex: 100,
position: 'static',
}}>
<View
style={{
backgroundColor: 'orange',
width: 50,
height: 50,
top: 10,
position: 'relative',
}}
/>
<View
style={{
backgroundColor: 'brown',
width: 50,
height: 50,
position: 'static',
}}>
<View
style={{
backgroundColor: 'black',
width: 25,
height: 25,
top: -10,
position: 'relative',
}}
/>
</View>
</View>
<View
style={{
backgroundColor: 'green',
width: 100,
height: 100,
position: 'relative',
left: -20,
}}
/>
</View>
);
}
class DisplayNoneStyle extends React.Component<
$ReadOnly<{||}>,
{|
@ -663,6 +735,11 @@ export default ({
return <ZIndexExample />;
},
},
{
title: 'ZIndex With Static',
name: 'zindex-with-static',
render: PositionStaticZIndexExample,
},
{
title: '`display: none` style',
name: 'display-none',

Просмотреть файл

@ -1,5 +1,5 @@
{
"baseVersion": "0.74.0-nightly-20240115-0c7008f28",
"baseVersion": "0.74.0-nightly-20240122-4e92f87df",
"overrides": [
{
"type": "copy",
@ -208,7 +208,7 @@
"type": "copy",
"directory": "js/examples/MutationObserver",
"baseDirectory": "packages/rn-tester/js/examples/MutationObserver",
"baseHash": "9bd04c23560b48286f7ab56c6a78318a3e8f610d",
"baseHash": "920723e15e7b62b5cea3999ee54a35a80be21534",
"issue": 4054
},
{
@ -439,7 +439,7 @@
"type": "copy",
"directory": "js/examples/View",
"baseDirectory": "packages/rn-tester/js/examples/View",
"baseHash": "13d1ccc19c2bac4f92dc26f02e3420a0743235e3",
"baseHash": "c3c7574b70fc1d02ffbd87c9e6d2208837583353",
"issue": 4054
},
{

Просмотреть файл

@ -11,12 +11,12 @@
},
"dependencies": {
"@babel/core": "^7.20.0",
"@react-native/babel-preset": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/babel-preset": "0.74.0-nightly-20240122-4e92f87df",
"babel-plugin-transform-flow-enums": "^0.0.2"
},
"devDependencies": {
"@babel/core": "^7.20.0",
"@react-native/babel-preset": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/babel-preset": "0.74.0-nightly-20240122-4e92f87df",
"eslint": "^8.19.0",
"prettier": "2.8.8"
},

Просмотреть файл

@ -12,7 +12,7 @@
"@babel/core": "^7.20.0",
"@babel/eslint-parser": "^7.20.0",
"@microsoft/eslint-plugin-sdl": "^0.2.0",
"@react-native/eslint-config": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/eslint-config": "0.74.0-nightly-20240122-4e92f87df",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-ft-flow": "^2.0.1"
},

Просмотреть файл

@ -47,7 +47,10 @@ exports.copyTask = baseDir => {
paths: reactNative('Libraries/**/*.+(d.ts|js|jsx|png|gif|jpg|html)'),
dest: base('Libraries'),
}),
copyTask({
paths: reactNative('src/**/*.+(d.ts|js|jsx|png|gif|jpg|html)'),
dest: base('src'),
}),
copyTask({
paths: reactNative('index.js', 'interface.js', 'rn-get-polyfills.js'),
dest: base('.'),
@ -82,6 +85,7 @@ exports.cleanTask = baseDir => {
}),
base('Libraries'),
base('src'),
base('index.js'),
base('interface.js'),
base('rn-get-polyfills.js'),

Просмотреть файл

@ -17,7 +17,7 @@
"lint:fix": "rnw-scripts lint:fix"
},
"dependencies": {
"@react-native/metro-config": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/metro-config": "0.74.0-nightly-20240122-4e92f87df",
"@rnx-kit/metro-config": "^1.3.5",
"@rnx-kit/metro-plugin-duplicates-checker": "^2.1.0",
"@rnx-kit/metro-serializer": "^1.0.11",

Просмотреть файл

@ -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-20240115-0c7008f28",
"react-native": "0.74.0-nightly-20240122-4e92f87df",
"react-native-windows": "^0.0.0-canary.779"
},
"devDependencies": {
@ -30,7 +30,7 @@
"@babel/runtime": "^7.20.0",
"@react-native-windows/automation": "^0.3.200",
"@react-native-windows/automation-commands": "^0.1.220",
"@react-native/metro-config": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/metro-config": "0.74.0-nightly-20240122-4e92f87df",
"@rnw-scripts/babel-node-config": "2.3.2",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.6",

Просмотреть файл

@ -79293,6 +79293,99 @@ exports[`snapshotAllPages View 10`] = `
`;
exports[`snapshotAllPages View 11`] = `
<View
style={
{
"backgroundColor": "yellow",
"flexDirection": "row",
}
}
testID="view-test-zindex-with-static"
>
<View
style={
{
"backgroundColor": "red",
"height": 100,
"left": 10,
"position": "relative",
"width": 100,
}
}
>
<View
style={
{
"backgroundColor": "purple",
"height": 50,
"left": 65,
"position": "relative",
"top": 30,
"width": 50,
}
}
/>
</View>
<View
style={
{
"backgroundColor": "blue",
"height": 100,
"position": "static",
"width": 100,
"zIndex": 100,
}
}
>
<View
style={
{
"backgroundColor": "orange",
"height": 50,
"position": "relative",
"top": 10,
"width": 50,
}
}
/>
<View
style={
{
"backgroundColor": "brown",
"height": 50,
"position": "static",
"width": 50,
}
}
>
<View
style={
{
"backgroundColor": "black",
"height": 25,
"position": "relative",
"top": -10,
"width": 25,
}
}
/>
</View>
</View>
<View
style={
{
"backgroundColor": "green",
"height": 100,
"left": -20,
"position": "relative",
"width": 100,
}
}
/>
</View>
`;
exports[`snapshotAllPages View 12`] = `
<View
accessibilityState={
{
@ -79393,7 +79486,7 @@ exports[`snapshotAllPages View 11`] = `
</View>
`;
exports[`snapshotAllPages View 12`] = `
exports[`snapshotAllPages View 13`] = `
<View
accessibilityLabel="Backface Visibility Example"
accessible={true}
@ -79511,7 +79604,7 @@ exports[`snapshotAllPages View 12`] = `
</View>
`;
exports[`snapshotAllPages View 13`] = `
exports[`snapshotAllPages View 14`] = `
<View
accessibilityLabel="Aria-Label Example"
accessible={true}
@ -79536,7 +79629,7 @@ exports[`snapshotAllPages View 13`] = `
</View>
`;
exports[`snapshotAllPages View 14`] = `
exports[`snapshotAllPages View 15`] = `
<View
accessibilityLabel="Flex Gap Example"
accessible={true}
@ -79653,7 +79746,7 @@ exports[`snapshotAllPages View 14`] = `
</View>
`;
exports[`snapshotAllPages View 15`] = `
exports[`snapshotAllPages View 16`] = `
<View
accessible={true}
style={
@ -79876,7 +79969,7 @@ exports[`snapshotAllPages View 15`] = `
</View>
`;
exports[`snapshotAllPages View 16`] = `
exports[`snapshotAllPages View 17`] = `
<View
accessibilityLabel="Logical Border Color Example"
accessible={true}
@ -79966,7 +80059,7 @@ exports[`snapshotAllPages View 16`] = `
</View>
`;
exports[`snapshotAllPages View 17`] = `
exports[`snapshotAllPages View 18`] = `
<View
accessibilityLabel="Layout Conformance Example"
accessible={true}
@ -80087,7 +80180,7 @@ exports[`snapshotAllPages View 17`] = `
</View>
`;
exports[`snapshotAllPages View 18`] = `
exports[`snapshotAllPages View 19`] = `
<View
accessibilityLabel="NativeID Example"
accessible={true}
@ -80100,7 +80193,7 @@ exports[`snapshotAllPages View 18`] = `
</View>
`;
exports[`snapshotAllPages View 19`] = `
exports[`snapshotAllPages View 20`] = `
<View
accessibilityActions={
[
@ -80145,7 +80238,7 @@ exports[`snapshotAllPages View 19`] = `
</View>
`;
exports[`snapshotAllPages View 20`] = `
exports[`snapshotAllPages View 21`] = `
<View
accessibilityLabel="Shadow Example"
accessible={true}
@ -80166,7 +80259,7 @@ exports[`snapshotAllPages View 20`] = `
/>
`;
exports[`snapshotAllPages View 21`] = `
exports[`snapshotAllPages View 22`] = `
<View
accessibilityLabel="HitSlop Example"
accessible={true}
@ -80191,7 +80284,7 @@ exports[`snapshotAllPages View 21`] = `
/>
`;
exports[`snapshotAllPages View 22`] = `
exports[`snapshotAllPages View 23`] = `
<View
accessibilityLabel="Tooltip Example"
accessible={true}

Просмотреть файл

@ -57,7 +57,7 @@
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<Import Project="$(ReactNativeWindowsDir)PropertySheets\Warnings.props" />
<Import Project="$(ReactNativeWindowsDir)PropertySheets\Warnings.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets">
@ -95,6 +95,7 @@
<ItemDefinitionGroup>
<ClCompile>
<PreprocessorDefinitions Condition="'$(UseFabric)'=='true'">USE_FABRIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<LanguageStandard Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">stdcpp17</LanguageStandard>
</ClCompile>
</ItemDefinitionGroup>
<PropertyGroup Label="UserMacros" />
@ -124,7 +125,7 @@
<Image Include="RNTesterApp-Fabric.ico" />
<Image Include="small.ico" />
</ItemGroup>
<ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />

Просмотреть файл

@ -55,4 +55,7 @@
<Filter>Resource Files</Filter>
</Image>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
</Project>

Просмотреть файл

@ -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-20240115-0c7008f28",
"react-native": "0.74.0-nightly-20240122-4e92f87df",
"react-native-windows": "^0.0.0-canary.779",
"react-native-xaml": "^0.0.78"
},
@ -31,7 +31,7 @@
"@babel/runtime": "^7.20.0",
"@react-native-windows/automation": "^0.3.200",
"@react-native-windows/automation-commands": "^0.1.220",
"@react-native/metro-config": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/metro-config": "0.74.0-nightly-20240122-4e92f87df",
"@rnw-scripts/babel-node-config": "2.3.2",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.6",

Просмотреть файл

@ -16,7 +16,7 @@
"@typescript-eslint/parser": "^5.21.0",
"chai": "^4.2.0",
"react": "18.2.0",
"react-native": "0.74.0-nightly-20240115-0c7008f28",
"react-native": "0.74.0-nightly-20240122-4e92f87df",
"react-native-windows": "^0.0.0-canary.779"
},
"devDependencies": {
@ -26,7 +26,7 @@
"@babel/preset-typescript": "^7.11.5",
"@babel/traverse": "^7.11.5",
"@babel/types": "^7.11.5",
"@react-native/metro-config": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/metro-config": "0.74.0-nightly-20240122-4e92f87df",
"@rnw-scripts/babel-node-config": "2.3.2",
"@rnw-scripts/eslint-config": "^1.2.6",
"@rnw-scripts/just-task": "^2.3.22",

Просмотреть файл

@ -15,13 +15,13 @@
"@typescript-eslint/eslint-plugin": "^5.21.0",
"@typescript-eslint/parser": "^5.21.0",
"react": "18.2.0",
"react-native": "0.74.0-nightly-20240115-0c7008f28",
"react-native": "0.74.0-nightly-20240122-4e92f87df",
"react-native-windows": "^0.0.0-canary.779"
},
"devDependencies": {
"@babel/core": "^7.20.0",
"@babel/runtime": "^7.20.0",
"@react-native/metro-config": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/metro-config": "0.74.0-nightly-20240122-4e92f87df",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.6",
"@rnw-scripts/just-task": "2.3.22",

Просмотреть файл

@ -69,8 +69,8 @@
"folly": {
"type": "Project",
"dependencies": {
"boost": "[1.76.0, )",
"fmt": "[1.0.0, )"
"Fmt": "[1.0.0, )",
"boost": "[1.76.0, )"
}
},
"microsoft.reactnative": {

Просмотреть файл

@ -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-20240115-0c7008f28",
"react-native": "0.74.0-nightly-20240122-4e92f87df",
"react-native-windows": "^0.0.0-canary.779"
},
"devDependencies": {
@ -24,7 +24,7 @@
"@babel/runtime": "^7.20.0",
"@react-native-windows/cli": "0.0.0-canary.202",
"@react-native-windows/codegen": "0.0.0-canary.78",
"@react-native/metro-config": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/metro-config": "0.74.0-nightly-20240122-4e92f87df",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.6",
"@rnw-scripts/just-task": "2.3.22",

Просмотреть файл

@ -5,6 +5,7 @@
/jest
/lib
/Libraries
/src
/local-cli/lib
/local-cli/lib-commonjs
/packages

Просмотреть файл

@ -65,6 +65,9 @@
; Ignore the src-win folder - flow files are combined with ones from react-native into the root Libraries folder
.*/vnext/src-win/.*
; Ignore the private __tests__ (until this is fixed: https://github.com/facebook/react-native/issues/43242)
.*/vnext/src/private/.*/__tests__/.*
.*/node_modules/resolve/test/resolver/malformed_package_json/package\.json$
; Checked-in build output
@ -143,4 +146,4 @@ untyped-import
untyped-type-import
[version]
^0.226.0
^0.227.0

1
vnext/.gitignore поставляемый
Просмотреть файл

@ -49,6 +49,7 @@ node_modules
/RNTester.*
/index.*
/interface.*
/src
/src-win/rntypes
/rntypes
/types

Просмотреть файл

@ -116,7 +116,6 @@ YGNodeSetContext
YGNodeSetHasNewLayout
YGNodeSetMeasureFunc
YGNodeSetNodeType
YGNodeSetPrintFunc
YGNodeStyleGetAlignContent
YGNodeStyleGetAlignItems
YGNodeStyleGetAlignSelf

Просмотреть файл

@ -125,7 +125,6 @@ _YGNodeSetContext@8
_YGNodeSetHasNewLayout@8
_YGNodeSetMeasureFunc@8
_YGNodeSetNodeType@8
_YGNodeSetPrintFunc@8
_YGNodeStyleGetAlignContent@4
_YGNodeStyleGetAlignItems@4
_YGNodeStyleGetAlignSelf@4

Просмотреть файл

@ -7,7 +7,6 @@
#include <yoga/YGEnums.h>
#include <yoga/YGValue.h>
#include <yoga/style/CompactValue.h>
#include <unordered_map>

Просмотреть файл

@ -24,21 +24,21 @@
"Microsoft.SourceLink.Common": "1.1.1"
}
},
"Microsoft.UI.Xaml": {
"type": "Direct",
"requested": "[2.8.0, )",
"resolved": "2.8.0",
"contentHash": "vxdHxTr63s5KVtNddMFpgvjBjUH50z7seq/5jLWmmSuf8poxg+sXrywkofUdE8ZstbpO9y3FL/IXXUcPYbeesA==",
"dependencies": {
"Microsoft.Web.WebView2": "1.0.1264.42"
}
},
"Microsoft.Windows.CppWinRT": {
"type": "Direct",
"requested": "[2.0.211028.7, )",
"resolved": "2.0.211028.7",
"contentHash": "JBGI0c3WLoU6aYJRy9Qo0MLDQfObEp+d4nrhR95iyzf7+HOgjRunHDp/6eGFREd7xq3OI1mll9ecJrMfzBvlyg=="
},
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
},
"Microsoft.Build.Tasks.Git": {
"type": "Transitive",
"resolved": "1.1.1",
@ -49,10 +49,10 @@
"resolved": "1.1.1",
"contentHash": "WMcGpWKrmJmzrNeuaEb23bEMnbtR/vLmvZtkAP5qWu7vQsY59GqfRJd65sFpBszbd2k/bQ8cs8eWawQKAabkVg=="
},
"Microsoft.Web.WebView2": {
"Microsoft.Windows.SDK.BuildTools": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"resolved": "10.0.22621.1",
"contentHash": "Sp1DkYvg7yxuhamwxv+qFC66KC3paKQpwK8Q1J6XuAh6nzXIInmsDcpJ3szr0XGud4ysXojqwTfGdW01gvZ/0g=="
},
"common": {
"type": "Project",
@ -79,52 +79,80 @@
}
},
"native,Version=v0.0/win10-arm": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
},
"native,Version=v0.0/win10-arm-aot": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
},
"native,Version=v0.0/win10-arm64-aot": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
},
"native,Version=v0.0/win10-x64": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
},
"native,Version=v0.0/win10-x64-aot": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
},
"native,Version=v0.0/win10-x86": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
},
"native,Version=v0.0/win10-x86-aot": {
"Microsoft.Web.WebView2": {
"type": "Transitive",
"resolved": "1.0.1264.42",
"contentHash": "7OBUTkzQ5VI/3gb0ufi5U4zjuCowAJwQg2li0zXXzqkM+S1kmOlivTy1R4jAW+gY5Vyg510M+qMAESCQUjrfgA=="
"Microsoft.WindowsAppSDK": {
"type": "Direct",
"requested": "[1.4.240211001, )",
"resolved": "1.4.240211001",
"contentHash": "43PdPLNSbBfugbQ7fd5imnZPpg7TGNirCe1/f3KLLYCg1NgDJeTh7t2ihLPuIdmD7rf6mTaUtRXUJYw0HBOzFQ==",
"dependencies": {
"Microsoft.Windows.SDK.BuildTools": "10.0.22621.1"
}
}
}
}

Просмотреть файл

@ -61,6 +61,9 @@
<CompileAsWinRT>false</CompileAsWinRT>
<SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>
$(ReactNativeDir)\ReactCommon;
$(ReactNativeDir)\ReactCommon\react;
$(ReactNativeDir)\ReactCommon\react\nativemodule\core\ReactCommon;
$(ReactNativeDir)\ReactCommon\jsi;
$(FmtDir)\include;
$(ReactNativeWindowsDir)stubs;

Просмотреть файл

@ -0,0 +1,66 @@
/*
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
#include "TurboModule.h"
//#include <react/debug/react_native_assert.h>
namespace facebook::react {
TurboModuleMethodValueKind getTurboModuleMethodValueKind(
jsi::Runtime& rt,
const jsi::Value* value) {
if (!value || value->isUndefined() || value->isNull()) {
return VoidKind;
} else if (value->isBool()) {
return BooleanKind;
} else if (value->isNumber()) {
return NumberKind;
} else if (value->isString()) {
return StringKind;
} else if (value->isObject()) {
auto object = value->asObject(rt);
if (object.isArray(rt)) {
return ArrayKind;
} else if (object.isFunction(rt)) {
return FunctionKind;
}
return ObjectKind;
}
//react_native_assert(false && "Unsupported jsi::Value kind");
return VoidKind;
}
TurboModule::TurboModule(
std::string name,
std::shared_ptr<CallInvoker> jsInvoker)
: name_(std::move(name)), jsInvoker_(std::move(jsInvoker)) {}
void TurboModule::emitDeviceEvent(
jsi::Runtime& runtime,
const std::string& eventName,
ArgFactory argFactory) {
jsInvoker_->invokeAsync([&runtime, eventName, argFactory]() {
jsi::Value emitter =
runtime.global().getProperty(runtime, "__rctDeviceEventEmitter");
if (!emitter.isUndefined()) {
jsi::Object emitterObject = emitter.asObject(runtime);
// TODO: consider caching these
jsi::Function emitFunction =
emitterObject.getPropertyAsFunction(runtime, "emit");
std::vector<jsi::Value> args;
args.emplace_back(
jsi::String::createFromAscii(runtime, eventName.c_str()));
if (argFactory) {
argFactory(runtime, args);
}
emitFunction.callWithThis(
runtime, emitterObject, (const jsi::Value*)args.data(), args.size());
}
});
}
} // namespace facebook::react

Просмотреть файл

@ -60,10 +60,6 @@ void YGNodeSetDirtiedFunc(YGNodeRef node, YGDirtiedFunc dirtiedFunc) {
resolveRef(node)->setDirtiedFunc(dirtiedFunc);
}
void YGNodeSetPrintFunc(YGNodeRef node, YGPrintFunc printFunc) {
resolveRef(node)->setPrintFunc(printFunc);
}
bool YGNodeGetHasNewLayout(YGNodeConstRef node) {
return resolveRef(node)->getHasNewLayout();
}

Просмотреть файл

@ -487,6 +487,9 @@
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\image\ImageProps.cpp" />
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\image\ImageShadowNode.cpp" />
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\image\ImageState.cpp" />
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\legacyviewmanagerinterop\UnstableLegacyViewManagerAutomaticComponentDescriptor.cpp" />
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\legacyviewmanagerinterop\UnstableLegacyViewManagerAutomaticShadowNode.cpp" />
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\legacyviewmanagerinterop\LegacyViewManagerInteropViewProps.cpp" />
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\root\RootProps.cpp" />
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\root\RootShadowNode.cpp" />
<ClCompile Include="$(ReactNativeDir)\ReactCommon\react\renderer\components\scrollview\ScrollViewEventEmitter.cpp" DisableSpecificWarnings="4305;%(DisableSpecificWarnings)" />

Просмотреть файл

@ -15,12 +15,12 @@
namespace facebook::react {
using DebuggingOverlayComponentDescriptor = ConcreteComponentDescriptor<DebuggingOverlayShadowNode>;
using ActivityIndicatorViewComponentDescriptor = ConcreteComponentDescriptor<ActivityIndicatorViewShadowNode>;
using AndroidDrawerLayoutComponentDescriptor = ConcreteComponentDescriptor<AndroidDrawerLayoutShadowNode>;
using AndroidSwipeRefreshLayoutComponentDescriptor = ConcreteComponentDescriptor<AndroidSwipeRefreshLayoutShadowNode>;
using PullToRefreshViewComponentDescriptor = ConcreteComponentDescriptor<PullToRefreshViewShadowNode>;
using AndroidHorizontalScrollContentViewComponentDescriptor = ConcreteComponentDescriptor<AndroidHorizontalScrollContentViewShadowNode>;
using AndroidSwipeRefreshLayoutComponentDescriptor = ConcreteComponentDescriptor<AndroidSwipeRefreshLayoutShadowNode>;
using DebuggingOverlayComponentDescriptor = ConcreteComponentDescriptor<DebuggingOverlayShadowNode>;
using PullToRefreshViewComponentDescriptor = ConcreteComponentDescriptor<PullToRefreshViewShadowNode>;
using SwitchComponentDescriptor = ConcreteComponentDescriptor<SwitchShadowNode>;
using UnimplementedNativeViewComponentDescriptor = ConcreteComponentDescriptor<UnimplementedNativeViewShadowNode>;

Просмотреть файл

@ -14,6 +14,74 @@
namespace facebook::react {
void AndroidDrawerLayoutEventEmitter::onDrawerSlide(OnDrawerSlide $event) const {
dispatchEvent("drawerSlide", [$event=std::move($event)](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
$payload.setProperty(runtime, "offset", $event.offset);
return $payload;
});
}
void AndroidDrawerLayoutEventEmitter::onDrawerStateChanged(OnDrawerStateChanged $event) const {
dispatchEvent("drawerStateChanged", [$event=std::move($event)](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
$payload.setProperty(runtime, "drawerState", $event.drawerState);
return $payload;
});
}
void AndroidDrawerLayoutEventEmitter::onDrawerOpen(OnDrawerOpen $event) const {
dispatchEvent("drawerOpen", [](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
return $payload;
});
}
void AndroidDrawerLayoutEventEmitter::onDrawerClose(OnDrawerClose $event) const {
dispatchEvent("drawerClose", [](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
return $payload;
});
}
void AndroidSwipeRefreshLayoutEventEmitter::onRefresh(OnRefresh $event) const {
dispatchEvent("refresh", [](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
return $payload;
});
}
void AndroidSwitchEventEmitter::onChange(OnChange $event) const {
dispatchEvent("change", [$event=std::move($event)](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
$payload.setProperty(runtime, "value", $event.value);
$payload.setProperty(runtime, "target", $event.target);
return $payload;
});
}
void PullToRefreshViewEventEmitter::onRefresh(OnRefresh $event) const {
dispatchEvent("refresh", [](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
return $payload;
});
}
void ModalHostViewEventEmitter::onRequestClose(OnRequestClose $event) const {
dispatchEvent("requestClose", [](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
@ -51,92 +119,6 @@ void ModalHostViewEventEmitter::onOrientationChange(OnOrientationChange $event)
void AndroidDrawerLayoutEventEmitter::onDrawerSlide(OnDrawerSlide $event) const {
dispatchEvent("drawerSlide", [$event=std::move($event)](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
$payload.setProperty(runtime, "offset", $event.offset);
return $payload;
});
}
void AndroidDrawerLayoutEventEmitter::onDrawerStateChanged(OnDrawerStateChanged $event) const {
dispatchEvent("drawerStateChanged", [$event=std::move($event)](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
$payload.setProperty(runtime, "drawerState", $event.drawerState);
return $payload;
});
}
void AndroidDrawerLayoutEventEmitter::onDrawerOpen(OnDrawerOpen $event) const {
dispatchEvent("drawerOpen", [](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
return $payload;
});
}
void AndroidDrawerLayoutEventEmitter::onDrawerClose(OnDrawerClose $event) const {
dispatchEvent("drawerClose", [](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
return $payload;
});
}
void RCTFlyoutEventEmitter::onDismiss(OnDismiss $event) const {
dispatchEvent("dismiss", [$event=std::move($event)](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
$payload.setProperty(runtime, "isOpen", $event.isOpen);
return $payload;
});
}
void RCTPopupEventEmitter::onDismiss(OnDismiss $event) const {
dispatchEvent("dismiss", [$event=std::move($event)](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
$payload.setProperty(runtime, "isOpen", $event.isOpen);
return $payload;
});
}
void AndroidSwipeRefreshLayoutEventEmitter::onRefresh(OnRefresh $event) const {
dispatchEvent("refresh", [](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
return $payload;
});
}
void PullToRefreshViewEventEmitter::onRefresh(OnRefresh $event) const {
dispatchEvent("refresh", [](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
return $payload;
});
}
void AndroidSwitchEventEmitter::onChange(OnChange $event) const {
dispatchEvent("change", [$event=std::move($event)](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
$payload.setProperty(runtime, "value", $event.value);
$payload.setProperty(runtime, "target", $event.target);
return $payload;
});
}
void SwitchEventEmitter::onChange(OnChange $event) const {
dispatchEvent("change", [$event=std::move($event)](jsi::Runtime &runtime) {
auto $payload = jsi::Object(runtime);
@ -147,5 +129,4 @@ $payload.setProperty(runtime, "target", $event.target);
}
} // namespace facebook::react

Просмотреть файл

@ -13,12 +13,95 @@
namespace facebook::react {
class ActivityIndicatorViewEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
};
class AndroidDrawerLayoutEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
struct OnDrawerSlide {
Float offset;
};
struct OnDrawerStateChanged {
int drawerState;
};
struct OnDrawerOpen {
};
struct OnDrawerClose {
};
void onDrawerSlide(OnDrawerSlide value) const;
void onDrawerStateChanged(OnDrawerStateChanged value) const;
void onDrawerOpen(OnDrawerOpen value) const;
void onDrawerClose(OnDrawerClose value) const;
};
class AndroidHorizontalScrollContentViewEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
};
class AndroidSwipeRefreshLayoutEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
struct OnRefresh {
};
void onRefresh(OnRefresh value) const;
};
class AndroidSwitchEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
struct OnChange {
bool value;
int target;
};
void onChange(OnChange value) const;
};
class DebuggingOverlayEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
};
class AndroidProgressBarEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
};
class PullToRefreshViewEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
struct OnRefresh {
};
void onRefresh(OnRefresh value) const;
};
class InputAccessoryEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
};
class ModalHostViewEventEmitter : public ViewEventEmitter {
public:
@ -59,113 +142,12 @@ class ModalHostViewEventEmitter : public ViewEventEmitter {
void onOrientationChange(OnOrientationChange value) const;
};
class ActivityIndicatorViewEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
};
class AndroidDrawerLayoutEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
struct OnDrawerSlide {
Float offset;
};
struct OnDrawerStateChanged {
int drawerState;
};
struct OnDrawerOpen {
};
struct OnDrawerClose {
};
void onDrawerSlide(OnDrawerSlide value) const;
void onDrawerStateChanged(OnDrawerStateChanged value) const;
void onDrawerOpen(OnDrawerOpen value) const;
void onDrawerClose(OnDrawerClose value) const;
};
class RCTFlyoutEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
struct OnDismiss {
bool isOpen;
};
void onDismiss(OnDismiss value) const;
};
class PLYIconEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
};
class RCTPopupEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
struct OnDismiss {
bool isOpen;
};
void onDismiss(OnDismiss value) const;
};
class AndroidProgressBarEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
};
class AndroidSwipeRefreshLayoutEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
struct OnRefresh {
};
void onRefresh(OnRefresh value) const;
};
class PullToRefreshViewEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
struct OnRefresh {
};
void onRefresh(OnRefresh value) const;
};
class SafeAreaViewEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
};
class AndroidHorizontalScrollContentViewEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
};
class AndroidSwitchEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
struct OnChange {
bool value;
int target;
};
void onChange(OnChange value) const;
};
class SwitchEventEmitter : public ViewEventEmitter {
public:
@ -176,13 +158,6 @@ class SwitchEventEmitter : public ViewEventEmitter {
int target;
};
void onChange(OnChange value) const;
};
class InputAccessoryEventEmitter : public ViewEventEmitter {
public:
using ViewEventEmitter::ViewEventEmitter;
};
class UnimplementedNativeViewEventEmitter : public ViewEventEmitter {
public:

Просмотреть файл

@ -14,28 +14,6 @@
namespace facebook::react {
DebuggingOverlayProps::DebuggingOverlayProps(
const PropsParserContext &context,
const DebuggingOverlayProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps)
{}
ModalHostViewProps::ModalHostViewProps(
const PropsParserContext &context,
const ModalHostViewProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
animationType(convertRawProp(context, rawProps, "animationType", sourceProps.animationType, {ModalHostViewAnimationType::None})),
presentationStyle(convertRawProp(context, rawProps, "presentationStyle", sourceProps.presentationStyle, {ModalHostViewPresentationStyle::FullScreen})),
transparent(convertRawProp(context, rawProps, "transparent", sourceProps.transparent, {false})),
statusBarTranslucent(convertRawProp(context, rawProps, "statusBarTranslucent", sourceProps.statusBarTranslucent, {false})),
hardwareAccelerated(convertRawProp(context, rawProps, "hardwareAccelerated", sourceProps.hardwareAccelerated, {false})),
visible(convertRawProp(context, rawProps, "visible", sourceProps.visible, {false})),
animated(convertRawProp(context, rawProps, "animated", sourceProps.animated, {false})),
supportedOrientations(convertRawProp(context, rawProps, "supportedOrientations", sourceProps.supportedOrientations, {static_cast<ModalHostViewSupportedOrientationsMask>(ModalHostViewSupportedOrientations::Portrait)})),
identifier(convertRawProp(context, rawProps, "identifier", sourceProps.identifier, {0}))
{}
ActivityIndicatorViewProps::ActivityIndicatorViewProps(
const PropsParserContext &context,
const ActivityIndicatorViewProps &sourceProps,
@ -58,58 +36,12 @@ AndroidDrawerLayoutProps::AndroidDrawerLayoutProps(
drawerLockMode(convertRawProp(context, rawProps, "drawerLockMode", sourceProps.drawerLockMode, {AndroidDrawerLayoutDrawerLockMode::Unlocked})),
statusBarBackgroundColor(convertRawProp(context, rawProps, "statusBarBackgroundColor", sourceProps.statusBarBackgroundColor, {}))
{}
RCTFlyoutProps::RCTFlyoutProps(
AndroidHorizontalScrollContentViewProps::AndroidHorizontalScrollContentViewProps(
const PropsParserContext &context,
const RCTFlyoutProps &sourceProps,
const AndroidHorizontalScrollContentViewProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
horizontalOffset(convertRawProp(context, rawProps, "horizontalOffset", sourceProps.horizontalOffset, {0.0})),
isLightDismissEnabled(convertRawProp(context, rawProps, "isLightDismissEnabled", sourceProps.isLightDismissEnabled, {false})),
autoFocus(convertRawProp(context, rawProps, "autoFocus", sourceProps.autoFocus, {false})),
shouldConstrainToRootBounds(convertRawProp(context, rawProps, "shouldConstrainToRootBounds", sourceProps.shouldConstrainToRootBounds, {false})),
isOverlayEnabled(convertRawProp(context, rawProps, "isOverlayEnabled", sourceProps.isOverlayEnabled, {false})),
isOpen(convertRawProp(context, rawProps, "isOpen", sourceProps.isOpen, {false})),
placement(convertRawProp(context, rawProps, "placement", sourceProps.placement, {})),
showMode(convertRawProp(context, rawProps, "showMode", sourceProps.showMode, {})),
target(convertRawProp(context, rawProps, "target", sourceProps.target, {0})),
verticalOffset(convertRawProp(context, rawProps, "verticalOffset", sourceProps.verticalOffset, {0.0}))
{}
PLYIconProps::PLYIconProps(
const PropsParserContext &context,
const PLYIconProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
color(convertRawProp(context, rawProps, "color", sourceProps.color, {})),
emSize(convertRawProp(context, rawProps, "emSize", sourceProps.emSize, {0.0})),
fontUri(convertRawProp(context, rawProps, "fontUri", sourceProps.fontUri, {})),
glyph(convertRawProp(context, rawProps, "glyph", sourceProps.glyph, {})),
colorEnabled(convertRawProp(context, rawProps, "colorEnabled", sourceProps.colorEnabled, {false}))
{}
RCTPopupProps::RCTPopupProps(
const PropsParserContext &context,
const RCTPopupProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
isOpen(convertRawProp(context, rawProps, "isOpen", sourceProps.isOpen, {false})),
isLightDismissEnabled(convertRawProp(context, rawProps, "isLightDismissEnabled", sourceProps.isLightDismissEnabled, {false})),
autoFocus(convertRawProp(context, rawProps, "autoFocus", sourceProps.autoFocus, {false})),
horizontalOffset(convertRawProp(context, rawProps, "horizontalOffset", sourceProps.horizontalOffset, {0.0})),
verticalOffset(convertRawProp(context, rawProps, "verticalOffset", sourceProps.verticalOffset, {0.0})),
target(convertRawProp(context, rawProps, "target", sourceProps.target, {0})),
testID(convertRawProp(context, rawProps, "testID", sourceProps.testID, {}))
{}
AndroidProgressBarProps::AndroidProgressBarProps(
const PropsParserContext &context,
const AndroidProgressBarProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
styleAttr(convertRawProp(context, rawProps, "styleAttr", sourceProps.styleAttr, {})),
typeAttr(convertRawProp(context, rawProps, "typeAttr", sourceProps.typeAttr, {})),
indeterminate(convertRawProp(context, rawProps, "indeterminate", sourceProps.indeterminate, {false})),
progress(convertRawProp(context, rawProps, "progress", sourceProps.progress, {0.0})),
animating(convertRawProp(context, rawProps, "animating", sourceProps.animating, {true})),
color(convertRawProp(context, rawProps, "color", sourceProps.color, {})),
testID(convertRawProp(context, rawProps, "testID", sourceProps.testID, {""}))
removeClippedSubviews(convertRawProp(context, rawProps, "removeClippedSubviews", sourceProps.removeClippedSubviews, {false}))
{}
AndroidSwipeRefreshLayoutProps::AndroidSwipeRefreshLayoutProps(
const PropsParserContext &context,
@ -123,31 +55,6 @@ AndroidSwipeRefreshLayoutProps::AndroidSwipeRefreshLayoutProps(
progressViewOffset(convertRawProp(context, rawProps, "progressViewOffset", sourceProps.progressViewOffset, {0.0})),
refreshing(convertRawProp(context, rawProps, "refreshing", sourceProps.refreshing, {false}))
{}
PullToRefreshViewProps::PullToRefreshViewProps(
const PropsParserContext &context,
const PullToRefreshViewProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
tintColor(convertRawProp(context, rawProps, "tintColor", sourceProps.tintColor, {})),
titleColor(convertRawProp(context, rawProps, "titleColor", sourceProps.titleColor, {})),
title(convertRawProp(context, rawProps, "title", sourceProps.title, {})),
progressViewOffset(convertRawProp(context, rawProps, "progressViewOffset", sourceProps.progressViewOffset, {0.0})),
refreshing(convertRawProp(context, rawProps, "refreshing", sourceProps.refreshing, {false}))
{}
SafeAreaViewProps::SafeAreaViewProps(
const PropsParserContext &context,
const SafeAreaViewProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps)
{}
AndroidHorizontalScrollContentViewProps::AndroidHorizontalScrollContentViewProps(
const PropsParserContext &context,
const AndroidHorizontalScrollContentViewProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
removeClippedSubviews(convertRawProp(context, rawProps, "removeClippedSubviews", sourceProps.removeClippedSubviews, {false}))
{}
AndroidSwitchProps::AndroidSwitchProps(
const PropsParserContext &context,
const AndroidSwitchProps &sourceProps,
@ -162,6 +69,66 @@ AndroidSwitchProps::AndroidSwitchProps(
on(convertRawProp(context, rawProps, "on", sourceProps.on, {false})),
thumbTintColor(convertRawProp(context, rawProps, "thumbTintColor", sourceProps.thumbTintColor, {})),
trackTintColor(convertRawProp(context, rawProps, "trackTintColor", sourceProps.trackTintColor, {}))
{}
DebuggingOverlayProps::DebuggingOverlayProps(
const PropsParserContext &context,
const DebuggingOverlayProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps)
{}
AndroidProgressBarProps::AndroidProgressBarProps(
const PropsParserContext &context,
const AndroidProgressBarProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
styleAttr(convertRawProp(context, rawProps, "styleAttr", sourceProps.styleAttr, {})),
typeAttr(convertRawProp(context, rawProps, "typeAttr", sourceProps.typeAttr, {})),
indeterminate(convertRawProp(context, rawProps, "indeterminate", sourceProps.indeterminate, {false})),
progress(convertRawProp(context, rawProps, "progress", sourceProps.progress, {0.0})),
animating(convertRawProp(context, rawProps, "animating", sourceProps.animating, {true})),
color(convertRawProp(context, rawProps, "color", sourceProps.color, {})),
testID(convertRawProp(context, rawProps, "testID", sourceProps.testID, {""}))
{}
PullToRefreshViewProps::PullToRefreshViewProps(
const PropsParserContext &context,
const PullToRefreshViewProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
tintColor(convertRawProp(context, rawProps, "tintColor", sourceProps.tintColor, {})),
titleColor(convertRawProp(context, rawProps, "titleColor", sourceProps.titleColor, {})),
title(convertRawProp(context, rawProps, "title", sourceProps.title, {})),
progressViewOffset(convertRawProp(context, rawProps, "progressViewOffset", sourceProps.progressViewOffset, {0.0})),
refreshing(convertRawProp(context, rawProps, "refreshing", sourceProps.refreshing, {false}))
{}
InputAccessoryProps::InputAccessoryProps(
const PropsParserContext &context,
const InputAccessoryProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
backgroundColor(convertRawProp(context, rawProps, "backgroundColor", sourceProps.backgroundColor, {}))
{}
ModalHostViewProps::ModalHostViewProps(
const PropsParserContext &context,
const ModalHostViewProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
animationType(convertRawProp(context, rawProps, "animationType", sourceProps.animationType, {ModalHostViewAnimationType::None})),
presentationStyle(convertRawProp(context, rawProps, "presentationStyle", sourceProps.presentationStyle, {ModalHostViewPresentationStyle::FullScreen})),
transparent(convertRawProp(context, rawProps, "transparent", sourceProps.transparent, {false})),
statusBarTranslucent(convertRawProp(context, rawProps, "statusBarTranslucent", sourceProps.statusBarTranslucent, {false})),
hardwareAccelerated(convertRawProp(context, rawProps, "hardwareAccelerated", sourceProps.hardwareAccelerated, {false})),
visible(convertRawProp(context, rawProps, "visible", sourceProps.visible, {false})),
animated(convertRawProp(context, rawProps, "animated", sourceProps.animated, {false})),
supportedOrientations(convertRawProp(context, rawProps, "supportedOrientations", sourceProps.supportedOrientations, {static_cast<ModalHostViewSupportedOrientationsMask>(ModalHostViewSupportedOrientations::Portrait)})),
identifier(convertRawProp(context, rawProps, "identifier", sourceProps.identifier, {0}))
{}
SafeAreaViewProps::SafeAreaViewProps(
const PropsParserContext &context,
const SafeAreaViewProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps)
{}
SwitchProps::SwitchProps(
const PropsParserContext &context,
@ -177,13 +144,6 @@ SwitchProps::SwitchProps(
trackColorForFalse(convertRawProp(context, rawProps, "trackColorForFalse", sourceProps.trackColorForFalse, {})),
trackColorForTrue(convertRawProp(context, rawProps, "trackColorForTrue", sourceProps.trackColorForTrue, {}))
{}
InputAccessoryProps::InputAccessoryProps(
const PropsParserContext &context,
const InputAccessoryProps &sourceProps,
const RawProps &rawProps): ViewProps(context, sourceProps, rawProps),
backgroundColor(convertRawProp(context, rawProps, "backgroundColor", sourceProps.backgroundColor, {}))
{}
UnimplementedNativeViewProps::UnimplementedNativeViewProps(
const PropsParserContext &context,
const UnimplementedNativeViewProps &sourceProps,

Просмотреть файл

@ -17,6 +17,157 @@
namespace facebook::react {
enum class ActivityIndicatorViewSize { Small, Large };
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ActivityIndicatorViewSize &result) {
auto string = (std::string)value;
if (string == "small") { result = ActivityIndicatorViewSize::Small; return; }
if (string == "large") { result = ActivityIndicatorViewSize::Large; return; }
abort();
}
static inline std::string toString(const ActivityIndicatorViewSize &value) {
switch (value) {
case ActivityIndicatorViewSize::Small: return "small";
case ActivityIndicatorViewSize::Large: return "large";
}
}
class ActivityIndicatorViewProps final : public ViewProps {
public:
ActivityIndicatorViewProps() = default;
ActivityIndicatorViewProps(const PropsParserContext& context, const ActivityIndicatorViewProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
bool hidesWhenStopped{true};
bool animating{true};
SharedColor color{};
ActivityIndicatorViewSize size{ActivityIndicatorViewSize::Small};
};
enum class AndroidDrawerLayoutKeyboardDismissMode { None, OnDrag };
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, AndroidDrawerLayoutKeyboardDismissMode &result) {
auto string = (std::string)value;
if (string == "none") { result = AndroidDrawerLayoutKeyboardDismissMode::None; return; }
if (string == "on-drag") { result = AndroidDrawerLayoutKeyboardDismissMode::OnDrag; return; }
abort();
}
static inline std::string toString(const AndroidDrawerLayoutKeyboardDismissMode &value) {
switch (value) {
case AndroidDrawerLayoutKeyboardDismissMode::None: return "none";
case AndroidDrawerLayoutKeyboardDismissMode::OnDrag: return "on-drag";
}
}
enum class AndroidDrawerLayoutDrawerPosition { Left, Right };
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, AndroidDrawerLayoutDrawerPosition &result) {
auto string = (std::string)value;
if (string == "left") { result = AndroidDrawerLayoutDrawerPosition::Left; return; }
if (string == "right") { result = AndroidDrawerLayoutDrawerPosition::Right; return; }
abort();
}
static inline std::string toString(const AndroidDrawerLayoutDrawerPosition &value) {
switch (value) {
case AndroidDrawerLayoutDrawerPosition::Left: return "left";
case AndroidDrawerLayoutDrawerPosition::Right: return "right";
}
}
enum class AndroidDrawerLayoutDrawerLockMode { Unlocked, LockedClosed, LockedOpen };
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, AndroidDrawerLayoutDrawerLockMode &result) {
auto string = (std::string)value;
if (string == "unlocked") { result = AndroidDrawerLayoutDrawerLockMode::Unlocked; return; }
if (string == "locked-closed") { result = AndroidDrawerLayoutDrawerLockMode::LockedClosed; return; }
if (string == "locked-open") { result = AndroidDrawerLayoutDrawerLockMode::LockedOpen; return; }
abort();
}
static inline std::string toString(const AndroidDrawerLayoutDrawerLockMode &value) {
switch (value) {
case AndroidDrawerLayoutDrawerLockMode::Unlocked: return "unlocked";
case AndroidDrawerLayoutDrawerLockMode::LockedClosed: return "locked-closed";
case AndroidDrawerLayoutDrawerLockMode::LockedOpen: return "locked-open";
}
}
class AndroidDrawerLayoutProps final : public ViewProps {
public:
AndroidDrawerLayoutProps() = default;
AndroidDrawerLayoutProps(const PropsParserContext& context, const AndroidDrawerLayoutProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
AndroidDrawerLayoutKeyboardDismissMode keyboardDismissMode{AndroidDrawerLayoutKeyboardDismissMode::None};
SharedColor drawerBackgroundColor{};
AndroidDrawerLayoutDrawerPosition drawerPosition{AndroidDrawerLayoutDrawerPosition::Left};
Float drawerWidth{};
AndroidDrawerLayoutDrawerLockMode drawerLockMode{AndroidDrawerLayoutDrawerLockMode::Unlocked};
SharedColor statusBarBackgroundColor{};
};
class AndroidHorizontalScrollContentViewProps final : public ViewProps {
public:
AndroidHorizontalScrollContentViewProps() = default;
AndroidHorizontalScrollContentViewProps(const PropsParserContext& context, const AndroidHorizontalScrollContentViewProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
bool removeClippedSubviews{false};
};
enum class AndroidSwipeRefreshLayoutSize { Default, Large };
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, AndroidSwipeRefreshLayoutSize &result) {
auto string = (std::string)value;
if (string == "default") { result = AndroidSwipeRefreshLayoutSize::Default; return; }
if (string == "large") { result = AndroidSwipeRefreshLayoutSize::Large; return; }
abort();
}
static inline std::string toString(const AndroidSwipeRefreshLayoutSize &value) {
switch (value) {
case AndroidSwipeRefreshLayoutSize::Default: return "default";
case AndroidSwipeRefreshLayoutSize::Large: return "large";
}
}
class AndroidSwipeRefreshLayoutProps final : public ViewProps {
public:
AndroidSwipeRefreshLayoutProps() = default;
AndroidSwipeRefreshLayoutProps(const PropsParserContext& context, const AndroidSwipeRefreshLayoutProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
bool enabled{true};
std::vector<SharedColor> colors{};
SharedColor progressBackgroundColor{};
AndroidSwipeRefreshLayoutSize size{AndroidSwipeRefreshLayoutSize::Default};
Float progressViewOffset{0.0};
bool refreshing{false};
};
class AndroidSwitchProps final : public ViewProps {
public:
AndroidSwitchProps() = default;
AndroidSwitchProps(const PropsParserContext& context, const AndroidSwitchProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
bool disabled{false};
bool enabled{true};
SharedColor thumbColor{};
SharedColor trackColorForFalse{};
SharedColor trackColorForTrue{};
bool value{false};
bool on{false};
SharedColor thumbTintColor{};
SharedColor trackTintColor{};
};
class DebuggingOverlayProps final : public ViewProps {
public:
DebuggingOverlayProps() = default;
@ -27,6 +178,46 @@ class DebuggingOverlayProps final : public ViewProps {
};
class AndroidProgressBarProps final : public ViewProps {
public:
AndroidProgressBarProps() = default;
AndroidProgressBarProps(const PropsParserContext& context, const AndroidProgressBarProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
std::string styleAttr{};
std::string typeAttr{};
bool indeterminate{false};
double progress{0.0};
bool animating{true};
SharedColor color{};
std::string testID{""};
};
class PullToRefreshViewProps final : public ViewProps {
public:
PullToRefreshViewProps() = default;
PullToRefreshViewProps(const PropsParserContext& context, const PullToRefreshViewProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
SharedColor tintColor{};
SharedColor titleColor{};
std::string title{};
Float progressViewOffset{0.0};
bool refreshing{false};
};
class InputAccessoryProps final : public ViewProps {
public:
InputAccessoryProps() = default;
InputAccessoryProps(const PropsParserContext& context, const InputAccessoryProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
SharedColor backgroundColor{};
};
enum class ModalHostViewAnimationType { None, Slide, Fade };
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ModalHostViewAnimationType &result) {
@ -161,208 +352,6 @@ class ModalHostViewProps final : public ViewProps {
int identifier{0};
};
enum class ActivityIndicatorViewSize { Small, Large };
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, ActivityIndicatorViewSize &result) {
auto string = (std::string)value;
if (string == "small") { result = ActivityIndicatorViewSize::Small; return; }
if (string == "large") { result = ActivityIndicatorViewSize::Large; return; }
abort();
}
static inline std::string toString(const ActivityIndicatorViewSize &value) {
switch (value) {
case ActivityIndicatorViewSize::Small: return "small";
case ActivityIndicatorViewSize::Large: return "large";
}
}
class ActivityIndicatorViewProps final : public ViewProps {
public:
ActivityIndicatorViewProps() = default;
ActivityIndicatorViewProps(const PropsParserContext& context, const ActivityIndicatorViewProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
bool hidesWhenStopped{true};
bool animating{true};
SharedColor color{};
ActivityIndicatorViewSize size{ActivityIndicatorViewSize::Small};
};
enum class AndroidDrawerLayoutKeyboardDismissMode { None, OnDrag };
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, AndroidDrawerLayoutKeyboardDismissMode &result) {
auto string = (std::string)value;
if (string == "none") { result = AndroidDrawerLayoutKeyboardDismissMode::None; return; }
if (string == "on-drag") { result = AndroidDrawerLayoutKeyboardDismissMode::OnDrag; return; }
abort();
}
static inline std::string toString(const AndroidDrawerLayoutKeyboardDismissMode &value) {
switch (value) {
case AndroidDrawerLayoutKeyboardDismissMode::None: return "none";
case AndroidDrawerLayoutKeyboardDismissMode::OnDrag: return "on-drag";
}
}
enum class AndroidDrawerLayoutDrawerPosition { Left, Right };
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, AndroidDrawerLayoutDrawerPosition &result) {
auto string = (std::string)value;
if (string == "left") { result = AndroidDrawerLayoutDrawerPosition::Left; return; }
if (string == "right") { result = AndroidDrawerLayoutDrawerPosition::Right; return; }
abort();
}
static inline std::string toString(const AndroidDrawerLayoutDrawerPosition &value) {
switch (value) {
case AndroidDrawerLayoutDrawerPosition::Left: return "left";
case AndroidDrawerLayoutDrawerPosition::Right: return "right";
}
}
enum class AndroidDrawerLayoutDrawerLockMode { Unlocked, LockedClosed, LockedOpen };
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, AndroidDrawerLayoutDrawerLockMode &result) {
auto string = (std::string)value;
if (string == "unlocked") { result = AndroidDrawerLayoutDrawerLockMode::Unlocked; return; }
if (string == "locked-closed") { result = AndroidDrawerLayoutDrawerLockMode::LockedClosed; return; }
if (string == "locked-open") { result = AndroidDrawerLayoutDrawerLockMode::LockedOpen; return; }
abort();
}
static inline std::string toString(const AndroidDrawerLayoutDrawerLockMode &value) {
switch (value) {
case AndroidDrawerLayoutDrawerLockMode::Unlocked: return "unlocked";
case AndroidDrawerLayoutDrawerLockMode::LockedClosed: return "locked-closed";
case AndroidDrawerLayoutDrawerLockMode::LockedOpen: return "locked-open";
}
}
class AndroidDrawerLayoutProps final : public ViewProps {
public:
AndroidDrawerLayoutProps() = default;
AndroidDrawerLayoutProps(const PropsParserContext& context, const AndroidDrawerLayoutProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
AndroidDrawerLayoutKeyboardDismissMode keyboardDismissMode{AndroidDrawerLayoutKeyboardDismissMode::None};
SharedColor drawerBackgroundColor{};
AndroidDrawerLayoutDrawerPosition drawerPosition{AndroidDrawerLayoutDrawerPosition::Left};
Float drawerWidth{};
AndroidDrawerLayoutDrawerLockMode drawerLockMode{AndroidDrawerLayoutDrawerLockMode::Unlocked};
SharedColor statusBarBackgroundColor{};
};
class RCTFlyoutProps final : public ViewProps {
public:
RCTFlyoutProps() = default;
RCTFlyoutProps(const PropsParserContext& context, const RCTFlyoutProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
double horizontalOffset{0.0};
bool isLightDismissEnabled{false};
bool autoFocus{false};
bool shouldConstrainToRootBounds{false};
bool isOverlayEnabled{false};
bool isOpen{false};
std::string placement{};
std::string showMode{};
int target{0};
double verticalOffset{0.0};
};
class PLYIconProps final : public ViewProps {
public:
PLYIconProps() = default;
PLYIconProps(const PropsParserContext& context, const PLYIconProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
SharedColor color{};
double emSize{0.0};
std::string fontUri{};
std::string glyph{};
bool colorEnabled{false};
};
class RCTPopupProps final : public ViewProps {
public:
RCTPopupProps() = default;
RCTPopupProps(const PropsParserContext& context, const RCTPopupProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
bool isOpen{false};
bool isLightDismissEnabled{false};
bool autoFocus{false};
double horizontalOffset{0.0};
double verticalOffset{0.0};
int target{0};
std::string testID{};
};
class AndroidProgressBarProps final : public ViewProps {
public:
AndroidProgressBarProps() = default;
AndroidProgressBarProps(const PropsParserContext& context, const AndroidProgressBarProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
std::string styleAttr{};
std::string typeAttr{};
bool indeterminate{false};
double progress{0.0};
bool animating{true};
SharedColor color{};
std::string testID{""};
};
enum class AndroidSwipeRefreshLayoutSize { Default, Large };
static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, AndroidSwipeRefreshLayoutSize &result) {
auto string = (std::string)value;
if (string == "default") { result = AndroidSwipeRefreshLayoutSize::Default; return; }
if (string == "large") { result = AndroidSwipeRefreshLayoutSize::Large; return; }
abort();
}
static inline std::string toString(const AndroidSwipeRefreshLayoutSize &value) {
switch (value) {
case AndroidSwipeRefreshLayoutSize::Default: return "default";
case AndroidSwipeRefreshLayoutSize::Large: return "large";
}
}
class AndroidSwipeRefreshLayoutProps final : public ViewProps {
public:
AndroidSwipeRefreshLayoutProps() = default;
AndroidSwipeRefreshLayoutProps(const PropsParserContext& context, const AndroidSwipeRefreshLayoutProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
bool enabled{true};
std::vector<SharedColor> colors{};
SharedColor progressBackgroundColor{};
AndroidSwipeRefreshLayoutSize size{AndroidSwipeRefreshLayoutSize::Default};
Float progressViewOffset{0.0};
bool refreshing{false};
};
class PullToRefreshViewProps final : public ViewProps {
public:
PullToRefreshViewProps() = default;
PullToRefreshViewProps(const PropsParserContext& context, const PullToRefreshViewProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
SharedColor tintColor{};
SharedColor titleColor{};
std::string title{};
Float progressViewOffset{0.0};
bool refreshing{false};
};
class SafeAreaViewProps final : public ViewProps {
public:
SafeAreaViewProps() = default;
@ -373,34 +362,6 @@ class SafeAreaViewProps final : public ViewProps {
};
class AndroidHorizontalScrollContentViewProps final : public ViewProps {
public:
AndroidHorizontalScrollContentViewProps() = default;
AndroidHorizontalScrollContentViewProps(const PropsParserContext& context, const AndroidHorizontalScrollContentViewProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
bool removeClippedSubviews{false};
};
class AndroidSwitchProps final : public ViewProps {
public:
AndroidSwitchProps() = default;
AndroidSwitchProps(const PropsParserContext& context, const AndroidSwitchProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
bool disabled{false};
bool enabled{true};
SharedColor thumbColor{};
SharedColor trackColorForFalse{};
SharedColor trackColorForTrue{};
bool value{false};
bool on{false};
SharedColor thumbTintColor{};
SharedColor trackTintColor{};
};
class SwitchProps final : public ViewProps {
public:
SwitchProps() = default;
@ -418,16 +379,6 @@ class SwitchProps final : public ViewProps {
SharedColor trackColorForTrue{};
};
class InputAccessoryProps final : public ViewProps {
public:
InputAccessoryProps() = default;
InputAccessoryProps(const PropsParserContext& context, const InputAccessoryProps &sourceProps, const RawProps &rawProps);
#pragma mark - Props
SharedColor backgroundColor{};
};
class UnimplementedNativeViewProps final : public ViewProps {
public:
UnimplementedNativeViewProps() = default;

Просмотреть файл

@ -12,12 +12,12 @@
namespace facebook::react {
extern const char DebuggingOverlayComponentName[] = "DebuggingOverlay";
extern const char ActivityIndicatorViewComponentName[] = "ActivityIndicatorView";
extern const char AndroidDrawerLayoutComponentName[] = "AndroidDrawerLayout";
extern const char AndroidSwipeRefreshLayoutComponentName[] = "AndroidSwipeRefreshLayout";
extern const char PullToRefreshViewComponentName[] = "PullToRefreshView";
extern const char AndroidHorizontalScrollContentViewComponentName[] = "AndroidHorizontalScrollContentView";
extern const char AndroidSwipeRefreshLayoutComponentName[] = "AndroidSwipeRefreshLayout";
extern const char DebuggingOverlayComponentName[] = "DebuggingOverlay";
extern const char PullToRefreshViewComponentName[] = "PullToRefreshView";
extern const char SwitchComponentName[] = "Switch";
extern const char UnimplementedNativeViewComponentName[] = "UnimplementedNativeView";

Просмотреть файл

@ -18,17 +18,6 @@
namespace facebook::react {
JSI_EXPORT extern const char DebuggingOverlayComponentName[];
/*
* `ShadowNode` for <DebuggingOverlay> component.
*/
using DebuggingOverlayShadowNode = ConcreteViewShadowNode<
DebuggingOverlayComponentName,
DebuggingOverlayProps,
DebuggingOverlayEventEmitter,
DebuggingOverlayState>;
JSI_EXPORT extern const char ActivityIndicatorViewComponentName[];
/*
@ -51,6 +40,17 @@ using AndroidDrawerLayoutShadowNode = ConcreteViewShadowNode<
AndroidDrawerLayoutEventEmitter,
AndroidDrawerLayoutState>;
JSI_EXPORT extern const char AndroidHorizontalScrollContentViewComponentName[];
/*
* `ShadowNode` for <AndroidHorizontalScrollContentView> component.
*/
using AndroidHorizontalScrollContentViewShadowNode = ConcreteViewShadowNode<
AndroidHorizontalScrollContentViewComponentName,
AndroidHorizontalScrollContentViewProps,
AndroidHorizontalScrollContentViewEventEmitter,
AndroidHorizontalScrollContentViewState>;
JSI_EXPORT extern const char AndroidSwipeRefreshLayoutComponentName[];
/*
@ -62,6 +62,17 @@ using AndroidSwipeRefreshLayoutShadowNode = ConcreteViewShadowNode<
AndroidSwipeRefreshLayoutEventEmitter,
AndroidSwipeRefreshLayoutState>;
JSI_EXPORT extern const char DebuggingOverlayComponentName[];
/*
* `ShadowNode` for <DebuggingOverlay> component.
*/
using DebuggingOverlayShadowNode = ConcreteViewShadowNode<
DebuggingOverlayComponentName,
DebuggingOverlayProps,
DebuggingOverlayEventEmitter,
DebuggingOverlayState>;
JSI_EXPORT extern const char PullToRefreshViewComponentName[];
/*
@ -73,17 +84,6 @@ using PullToRefreshViewShadowNode = ConcreteViewShadowNode<
PullToRefreshViewEventEmitter,
PullToRefreshViewState>;
JSI_EXPORT extern const char AndroidHorizontalScrollContentViewComponentName[];
/*
* `ShadowNode` for <AndroidHorizontalScrollContentView> component.
*/
using AndroidHorizontalScrollContentViewShadowNode = ConcreteViewShadowNode<
AndroidHorizontalScrollContentViewComponentName,
AndroidHorizontalScrollContentViewProps,
AndroidHorizontalScrollContentViewEventEmitter,
AndroidHorizontalScrollContentViewState>;
JSI_EXPORT extern const char SwitchComponentName[];
/*

Просмотреть файл

@ -16,21 +16,6 @@
namespace facebook::react {
class DebuggingOverlayState {
public:
DebuggingOverlayState() = default;
#ifdef ANDROID
DebuggingOverlayState(DebuggingOverlayState const &previousState, folly::dynamic data){};
folly::dynamic getDynamic() const {
return {};
};
MapBuffer getMapBuffer() const {
return MapBufferBuilder::EMPTY();
};
#endif
};
class ActivityIndicatorViewState {
public:
ActivityIndicatorViewState() = default;
@ -61,6 +46,21 @@ public:
#endif
};
class AndroidHorizontalScrollContentViewState {
public:
AndroidHorizontalScrollContentViewState() = default;
#ifdef ANDROID
AndroidHorizontalScrollContentViewState(AndroidHorizontalScrollContentViewState const &previousState, folly::dynamic data){};
folly::dynamic getDynamic() const {
return {};
};
MapBuffer getMapBuffer() const {
return MapBufferBuilder::EMPTY();
};
#endif
};
class AndroidSwipeRefreshLayoutState {
public:
AndroidSwipeRefreshLayoutState() = default;
@ -76,12 +76,12 @@ public:
#endif
};
class PullToRefreshViewState {
class DebuggingOverlayState {
public:
PullToRefreshViewState() = default;
DebuggingOverlayState() = default;
#ifdef ANDROID
PullToRefreshViewState(PullToRefreshViewState const &previousState, folly::dynamic data){};
DebuggingOverlayState(DebuggingOverlayState const &previousState, folly::dynamic data){};
folly::dynamic getDynamic() const {
return {};
};
@ -91,12 +91,12 @@ public:
#endif
};
class AndroidHorizontalScrollContentViewState {
class PullToRefreshViewState {
public:
AndroidHorizontalScrollContentViewState() = default;
PullToRefreshViewState() = default;
#ifdef ANDROID
AndroidHorizontalScrollContentViewState(AndroidHorizontalScrollContentViewState const &previousState, folly::dynamic data){};
PullToRefreshViewState(PullToRefreshViewState const &previousState, folly::dynamic data){};
folly::dynamic getDynamic() const {
return {};
};

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -28,7 +28,7 @@ option('clean');
function codegen(test) {
execSync(
`react-native-windows-codegen --files Libraries/**/*Native*.js --namespace Microsoft::ReactNativeSpecs --libraryName rnwcore --modulesWindows --modulesCxx${
`react-native-windows-codegen --files src/**/*Native*.js --namespace Microsoft::ReactNativeSpecs --libraryName rnwcore --modulesWindows --modulesCxx${
test ? ' --test' : ''
}`,
{env: process.env},

Просмотреть файл

@ -8,13 +8,13 @@
"**/__snapshots__/**",
"src-win/rntypes/**"
],
"baseVersion": "0.74.0-nightly-20240115-0c7008f28",
"baseVersion": "0.74.0-nightly-20240122-4e92f87df",
"overrides": [
{
"type": "derived",
"file": ".flowconfig",
"baseFile": ".flowconfig",
"baseHash": "c8d51e03c7f984398c710769a282b9e28d3030b2"
"baseHash": "a243aa54de1d5c568bac704249159975dcc2ccd7"
},
{
"type": "derived",
@ -81,7 +81,7 @@
"type": "patch",
"file": "ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp",
"baseFile": "packages/react-native/ReactCommon/jsi/jsi/test/testlib.cpp",
"baseHash": "daa77a3a77ebd409fde7133d9ab40a2efe5ab31b",
"baseHash": "0fc900e2bc66a271da55030a90aa4b9842b4870d",
"issue": 12210
},
{
@ -170,10 +170,6 @@
"baseFile": "packages/react-native/Libraries/Alert/Alert.js",
"baseHash": "897569d77df852480332b7ce7ec1b594cf40aa28"
},
{
"type": "platform",
"file": "src-win/Libraries/Alert/NativeDialogManagerWindows.js"
},
{
"type": "platform",
"file": "src-win/Libraries/AppTheme/AppTheme.js"
@ -372,6 +368,13 @@
"baseHash": "e8a001f301489c72ac5a0e798f28d7b6418c4c9f",
"issue": 10619
},
{
"type": "patch",
"file": "src-win/Libraries/Lists/FlatList.windows.js",
"baseFile": "packages/react-native/Libraries/Lists/FlatList.js",
"baseHash": "3ae2273b2cf866b2503e17261869c02d2a31f7a4",
"issue": 12770
},
{
"type": "derived",
"file": "src-win/Libraries/LogBox/UI/LogBoxInspectorCodeFrame.windows.js",
@ -402,6 +405,12 @@
"baseFile": "packages/react-native/Libraries/NativeComponent/BaseViewConfig.ios.js",
"baseHash": "ae7bdcfff1117d4a349b7b9bcc108a22ae7099ae"
},
{
"type": "derived",
"file": "src-win/Libraries/NativeModules/specs/NativeDialogManagerWindows.js",
"baseFile": "packages/react-native/Libraries/NativeModules/specs/NativeDialogManagerAndroid.js",
"baseHash": "8d5e62de4a21e49992bb92c48b698493346d44c3"
},
{
"type": "copy",
"file": "src-win/Libraries/Network/RCTNetworking.windows.js",
@ -477,19 +486,35 @@
"type": "derived",
"file": "src-win/Libraries/Utilities/NativePlatformConstantsWin.js",
"baseFile": "packages/react-native/Libraries/Utilities/NativePlatformConstantsIOS.js",
"baseHash": "d618776f5251597b9fa13c55be27e09f3ceccdf3"
"baseHash": "7b9db1bdc43128938d261961e3765c24d17e68b6"
},
{
"type": "derived",
"file": "src-win/Libraries/Utilities/Platform.flow.windows.js",
"baseFile": "packages/react-native/Libraries/Utilities/Platform.flow.js",
"baseHash": "48e0b6dd625aa58347266a362eb404ddd47b59d4"
"baseHash": "d07d4656dc872e92e873bcce248262132085bd99"
},
{
"type": "derived",
"file": "src-win/Libraries/Utilities/Platform.windows.js",
"baseFile": "packages/react-native/Libraries/Utilities/Platform.android.js",
"baseHash": "a09b2fdd9859584069281df3311ef188a5640b00"
"baseHash": "3c959f078048e8a9cbd6d0463071c2208597ab8a"
},
{
"type": "platform",
"file": "src-win/src/private/specs/modules/NativeAppTheme.js"
},
{
"type": "derived",
"file": "src-win/src/private/specs/modules/NativeDialogManagerWindows.js",
"baseFile": "packages/react-native/src/private/specs/modules/NativeDialogManagerAndroid.js",
"baseHash": "d96d4f28b2380455809e1204ff509ce93cf39ef9"
},
{
"type": "derived",
"file": "src-win/src/private/specs/modules/NativePlatformConstantsWin.js",
"baseFile": "packages/react-native/src/private/specs/modules/NativePlatformConstantsAndroid.js",
"baseHash": "b4a125d9134f33aeaba9e06988e18cbb0b4e9e9c"
}
]
}

Просмотреть файл

@ -28,13 +28,13 @@
"@react-native-community/cli-platform-ios": "13.0.0",
"@react-native-windows/cli": "0.0.0-canary.202",
"@react-native/assets": "1.0.0",
"@react-native/assets-registry": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/codegen": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/community-cli-plugin": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/gradle-plugin": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/js-polyfills": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/normalize-colors": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/virtualized-lists": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/assets-registry": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/codegen": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/community-cli-plugin": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/gradle-plugin": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/js-polyfills": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/normalize-colors": "0.74.0-nightly-20240122-4e92f87df",
"@react-native/virtualized-lists": "0.74.0-nightly-20240122-4e92f87df",
"abort-controller": "^3.0.0",
"anser": "^1.4.9",
"ansi-regex": "^5.0.0",
@ -52,7 +52,7 @@
"nullthrows": "^1.1.1",
"pretty-format": "^26.5.2",
"promise": "^8.3.0",
"react-devtools-core": "^4.27.7",
"react-devtools-core": "^5.0.0",
"react-refresh": "^0.14.0",
"react-shallow-renderer": "^16.15.0",
"regenerator-runtime": "^0.13.2",
@ -65,7 +65,7 @@
},
"devDependencies": {
"@react-native-windows/codegen": "0.0.0-canary.78",
"@react-native/metro-config": "0.74.0-nightly-20240115-0c7008f28",
"@react-native/metro-config": "0.74.0-nightly-20240122-4e92f87df",
"@rnw-scripts/babel-react-native-config": "0.0.0",
"@rnw-scripts/eslint-config": "1.2.6",
"@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.10",
@ -81,14 +81,14 @@
"just-scripts": "^1.3.3",
"prettier": "2.8.8",
"react": "18.2.0",
"react-native": "0.74.0-nightly-20240115-0c7008f28",
"react-native": "0.74.0-nightly-20240122-4e92f87df",
"react-native-platform-override": "^1.9.22",
"react-refresh": "^0.14.0",
"typescript": "5.0.4"
},
"peerDependencies": {
"react": "18.2.0",
"react-native": "0.74.0-nightly-20240115-0c7008f28"
"react-native": "0.74.0-nightly-20240122-4e92f87df"
},
"beachball": {
"defaultNpmTag": "canary",
@ -111,6 +111,7 @@
"/jest",
"/JSI",
"/Libraries",
"/src",
"/Microsoft.ReactNative",
"/Microsoft.ReactNative.Cxx",
"/Microsoft.ReactNative.Managed",

Просмотреть файл

@ -4,10 +4,9 @@
* @flow
* @format
*/
import type {DialogOptions} from './NativeDialogManagerWindows';
import type {DialogOptions} from '../NativeModules/specs/NativeDialogManagerWindows';
const NativeDialogManagerWindows =
require('./NativeDialogManagerWindows').default;
require('../NativeModules/specs/NativeDialogManagerWindows').default;
export type AlertType =
| 'default'

Просмотреть файл

@ -2,31 +2,10 @@
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*
* @flow strict
* @format
* @flow strict-local
*/
import type {TurboModule} from '../TurboModule/RCTExport';
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
export type HighContrastColors = {|
ButtonFaceColor: string,
ButtonTextColor: string,
GrayTextColor: string,
HighlightColor: string,
HighlightTextColor: string,
HotlightColor: string,
WindowColor: string,
WindowTextColor: string,
|};
export type AppThemeData = {|
isHighContrast: boolean,
highContrastColors: HighContrastColors,
|};
export interface Spec extends TurboModule {
+getConstants: () => AppThemeData;
}
export default (TurboModuleRegistry.get<Spec>('AppTheme'): ?Spec);
export * from '../../src/private/specs/modules/NativeAppTheme';
import NativeAppTheme from '../../src/private/specs/modules/NativeAppTheme';
export default NativeAppTheme;

Просмотреть файл

@ -0,0 +1,712 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow
* @format
*/
import typeof ScrollViewNativeComponent from '../Components/ScrollView/ScrollViewNativeComponent';
import type {ViewStyleProp} from '../StyleSheet/StyleSheet';
import type {
RenderItemProps,
RenderItemType,
ViewabilityConfigCallbackPair,
ViewToken,
} from '@react-native/virtualized-lists';
import {type ScrollResponderType} from '../Components/ScrollView/ScrollView';
import {
VirtualizedList,
keyExtractor as defaultKeyExtractor,
} from '@react-native/virtualized-lists';
import memoizeOne from 'memoize-one';
const View = require('../Components/View/View');
const StyleSheet = require('../StyleSheet/StyleSheet');
const deepDiffer = require('../Utilities/differ/deepDiffer');
const Platform = require('../Utilities/Platform');
const invariant = require('invariant');
const React = require('react');
type RequiredProps<ItemT> = {|
/**
* An array (or array-like list) of items to render. Other data types can be
* used by targeting VirtualizedList directly.
*/
data: ?$ReadOnly<$ArrayLike<ItemT>>,
|};
type OptionalProps<ItemT> = {|
/**
* Takes an item from `data` and renders it into the list. Example usage:
*
* <FlatList
* ItemSeparatorComponent={Platform.OS !== 'android' && ({highlighted}) => (
* <View style={[style.separator, highlighted && {marginLeft: 0}]} />
* )}
* data={[{title: 'Title Text', key: 'item1'}]}
* renderItem={({item, separators}) => (
* <TouchableHighlight
* onPress={() => this._onPress(item)}
* onShowUnderlay={separators.highlight}
* onHideUnderlay={separators.unhighlight}>
* <View style={{backgroundColor: 'white'}}>
* <Text>{item.title}</Text>
* </View>
* </TouchableHighlight>
* )}
* />
*
* Provides additional metadata like `index` if you need it, as well as a more generic
* `separators.updateProps` function which let's you set whatever props you want to change the
* rendering of either the leading separator or trailing separator in case the more common
* `highlight` and `unhighlight` (which set the `highlighted: boolean` prop) are insufficient for
* your use-case.
*/
renderItem?: ?RenderItemType<ItemT>,
/**
* Optional custom style for multi-item rows generated when numColumns > 1.
*/
columnWrapperStyle?: ViewStyleProp,
/**
* A marker property for telling the list to re-render (since it implements `PureComponent`). If
* any of your `renderItem`, Header, Footer, etc. functions depend on anything outside of the
* `data` prop, stick it here and treat it immutably.
*/
extraData?: any,
/**
* `getItemLayout` is an optional optimizations that let us skip measurement of dynamic content if
* you know the height of items a priori. `getItemLayout` is the most efficient, and is easy to
* use if you have fixed height items, for example:
*
* getItemLayout={(data, index) => (
* {length: ITEM_HEIGHT, offset: ITEM_HEIGHT * index, index}
* )}
*
* Adding `getItemLayout` can be a great performance boost for lists of several hundred items.
* Remember to include separator length (height or width) in your offset calculation if you
* specify `ItemSeparatorComponent`.
*/
getItemLayout?: (
data: ?$ReadOnly<$ArrayLike<ItemT>>,
index: number,
) => {
length: number,
offset: number,
index: number,
...
},
/**
* If true, renders items next to each other horizontally instead of stacked vertically.
*/
horizontal?: ?boolean,
/**
* How many items to render in the initial batch. This should be enough to fill the screen but not
* much more. Note these items will never be unmounted as part of the windowed rendering in order
* to improve perceived performance of scroll-to-top actions.
*/
initialNumToRender?: ?number,
/**
* Instead of starting at the top with the first item, start at `initialScrollIndex`. This
* disables the "scroll to top" optimization that keeps the first `initialNumToRender` items
* always rendered and immediately renders the items starting at this initial index. Requires
* `getItemLayout` to be implemented.
*/
initialScrollIndex?: ?number,
/**
* Reverses the direction of scroll. Uses scale transforms of -1.
*/
inverted?: ?boolean,
/**
* Used to extract a unique key for a given item at the specified index. Key is used for caching
* and as the react key to track item re-ordering. The default extractor checks `item.key`, then
* falls back to using the index, like React does.
*/
keyExtractor?: ?(item: ItemT, index: number) => string,
/**
* Multiple columns can only be rendered with `horizontal={false}` and will zig-zag like a
* `flexWrap` layout. Items should all be the same height - masonry layouts are not supported.
*
* The default value is 1.
*/
numColumns?: number,
/**
* Note: may have bugs (missing content) in some circumstances - use at your own risk.
*
* This may improve scroll performance for large lists.
*
* The default value is true for Android.
*/
removeClippedSubviews?: boolean,
/**
* See `ScrollView` for flow type and further documentation.
*/
fadingEdgeLength?: ?number,
/**
* Enable an optimization to memoize the item renderer to prevent unnecessary rerenders.
*/
strictMode?: boolean,
|};
/**
* Default Props Helper Functions
* Use the following helper functions for default values
*/
// removeClippedSubviewsOrDefault(this.props.removeClippedSubviews)
function removeClippedSubviewsOrDefault(removeClippedSubviews: ?boolean) {
return removeClippedSubviews ?? Platform.OS === 'android';
}
// numColumnsOrDefault(this.props.numColumns)
function numColumnsOrDefault(numColumns: ?number) {
return numColumns ?? 1;
}
function isArrayLike(data: mixed): boolean {
// $FlowExpectedError[incompatible-use]
return typeof Object(data).length === 'number';
}
type FlatListProps<ItemT> = {|
...RequiredProps<ItemT>,
...OptionalProps<ItemT>,
|};
type VirtualizedListProps = React.ElementConfig<typeof VirtualizedList>;
export type Props<ItemT> = {
...$Diff<
VirtualizedListProps,
{
getItem: $PropertyType<VirtualizedListProps, 'getItem'>,
getItemCount: $PropertyType<VirtualizedListProps, 'getItemCount'>,
getItemLayout: $PropertyType<VirtualizedListProps, 'getItemLayout'>,
renderItem: $PropertyType<VirtualizedListProps, 'renderItem'>,
keyExtractor: $PropertyType<VirtualizedListProps, 'keyExtractor'>,
...
},
>,
...FlatListProps<ItemT>,
...
};
/**
* A performant interface for rendering simple, flat lists, supporting the most handy features:
*
* - Fully cross-platform.
* - Optional horizontal mode.
* - Configurable viewability callbacks.
* - Header support.
* - Footer support.
* - Separator support.
* - Pull to Refresh.
* - Scroll loading.
* - ScrollToIndex support.
*
* If you need section support, use [`<SectionList>`](docs/sectionlist.html).
*
* Minimal Example:
*
* <FlatList
* data={[{key: 'a'}, {key: 'b'}]}
* renderItem={({item}) => <Text>{item.key}</Text>}
* />
*
* More complex, multi-select example demonstrating `PureComponent` usage for perf optimization and avoiding bugs.
*
* - By binding the `onPressItem` handler, the props will remain `===` and `PureComponent` will
* prevent wasteful re-renders unless the actual `id`, `selected`, or `title` props change, even
* if the components rendered in `MyListItem` did not have such optimizations.
* - By passing `extraData={this.state}` to `FlatList` we make sure `FlatList` itself will re-render
* when the `state.selected` changes. Without setting this prop, `FlatList` would not know it
* needs to re-render any items because it is also a `PureComponent` and the prop comparison will
* not show any changes.
* - `keyExtractor` tells the list to use the `id`s for the react keys instead of the default `key` property.
*
*
* class MyListItem extends React.PureComponent {
* _onPress = () => {
* this.props.onPressItem(this.props.id);
* };
*
* render() {
* const textColor = this.props.selected ? "red" : "black";
* return (
* <TouchableOpacity onPress={this._onPress}>
* <View>
* <Text style={{ color: textColor }}>
* {this.props.title}
* </Text>
* </View>
* </TouchableOpacity>
* );
* }
* }
*
* class MultiSelectList extends React.PureComponent {
* state = {selected: (new Map(): Map<string, boolean>)};
*
* _keyExtractor = (item, index) => item.id;
*
* _onPressItem = (id: string) => {
* // updater functions are preferred for transactional updates
* this.setState((state) => {
* // copy the map rather than modifying state.
* const selected = new Map(state.selected);
* selected.set(id, !selected.get(id)); // toggle
* return {selected};
* });
* };
*
* _renderItem = ({item}) => (
* <MyListItem
* id={item.id}
* onPressItem={this._onPressItem}
* selected={!!this.state.selected.get(item.id)}
* title={item.title}
* />
* );
*
* render() {
* return (
* <FlatList
* data={this.props.data}
* extraData={this.state}
* keyExtractor={this._keyExtractor}
* renderItem={this._renderItem}
* />
* );
* }
* }
*
* This is a convenience wrapper around [`<VirtualizedList>`](docs/virtualizedlist.html),
* and thus inherits its props (as well as those of `ScrollView`) that aren't explicitly listed
* here, along with the following caveats:
*
* - Internal state is not preserved when content scrolls out of the render window. Make sure all
* your data is captured in the item data or external stores like Flux, Redux, or Relay.
* - This is a `PureComponent` which means that it will not re-render if `props` remain shallow-
* equal. Make sure that everything your `renderItem` function depends on is passed as a prop
* (e.g. `extraData`) that is not `===` after updates, otherwise your UI may not update on
* changes. This includes the `data` prop and parent component state.
* - In order to constrain memory and enable smooth scrolling, content is rendered asynchronously
* offscreen. This means it's possible to scroll faster than the fill rate ands momentarily see
* blank content. This is a tradeoff that can be adjusted to suit the needs of each application,
* and we are working on improving it behind the scenes.
* - By default, the list looks for a `key` prop on each item and uses that for the React key.
* Alternatively, you can provide a custom `keyExtractor` prop.
*
* Also inherits [ScrollView Props](docs/scrollview.html#props), unless it is nested in another FlatList of same orientation.
*/
class FlatList<ItemT> extends React.PureComponent<Props<ItemT>, void> {
/**
* Scrolls to the end of the content. May be janky without `getItemLayout` prop.
*/
scrollToEnd(params?: ?{animated?: ?boolean, ...}) {
if (this._listRef) {
this._listRef.scrollToEnd(params);
}
}
/**
* Scrolls to the item at the specified index such that it is positioned in the viewable area
* such that `viewPosition` 0 places it at the top, 1 at the bottom, and 0.5 centered in the
* middle. `viewOffset` is a fixed number of pixels to offset the final target position.
*
* Note: cannot scroll to locations outside the render window without specifying the
* `getItemLayout` prop.
*/
scrollToIndex(params: {
animated?: ?boolean,
index: number,
viewOffset?: number,
viewPosition?: number,
...
}) {
if (this._listRef) {
this._listRef.scrollToIndex(params);
}
}
/**
* Requires linear scan through data - use `scrollToIndex` instead if possible.
*
* Note: cannot scroll to locations outside the render window without specifying the
* `getItemLayout` prop.
*/
scrollToItem(params: {
animated?: ?boolean,
item: ItemT,
viewOffset?: number,
viewPosition?: number,
...
}) {
if (this._listRef) {
this._listRef.scrollToItem(params);
}
}
/**
* Scroll to a specific content pixel offset in the list.
*
* Check out [scrollToOffset](docs/virtualizedlist.html#scrolltooffset) of VirtualizedList
*/
scrollToOffset(params: {animated?: ?boolean, offset: number, ...}) {
if (this._listRef) {
this._listRef.scrollToOffset(params);
}
}
/**
* Tells the list an interaction has occurred, which should trigger viewability calculations, e.g.
* if `waitForInteractions` is true and the user has not scrolled. This is typically called by
* taps on items or by navigation actions.
*/
recordInteraction() {
if (this._listRef) {
this._listRef.recordInteraction();
}
}
/**
* Displays the scroll indicators momentarily.
*
* @platform ios
*/
flashScrollIndicators() {
if (this._listRef) {
this._listRef.flashScrollIndicators();
}
}
/**
* Provides a handle to the underlying scroll responder.
*/
getScrollResponder(): ?ScrollResponderType {
if (this._listRef) {
return this._listRef.getScrollResponder();
}
}
/**
* Provides a reference to the underlying host component
*/
getNativeScrollRef():
| ?React.ElementRef<typeof View>
| ?React.ElementRef<ScrollViewNativeComponent> {
if (this._listRef) {
/* $FlowFixMe[incompatible-return] Suppresses errors found when fixing
* TextInput typing */
return this._listRef.getScrollRef();
}
}
getScrollableNode(): any {
if (this._listRef) {
return this._listRef.getScrollableNode();
}
}
setNativeProps(props: {[string]: mixed, ...}) {
if (this._listRef) {
this._listRef.setNativeProps(props);
}
}
constructor(props: Props<ItemT>) {
super(props);
this._checkProps(this.props);
if (this.props.viewabilityConfigCallbackPairs) {
this._virtualizedListPairs =
this.props.viewabilityConfigCallbackPairs.map(pair => ({
viewabilityConfig: pair.viewabilityConfig,
onViewableItemsChanged: this._createOnViewableItemsChanged(
pair.onViewableItemsChanged,
),
}));
} else if (this.props.onViewableItemsChanged) {
this._virtualizedListPairs.push({
/* $FlowFixMe[incompatible-call] (>=0.63.0 site=react_native_fb) This
* comment suppresses an error found when Flow v0.63 was deployed. To
* see the error delete this comment and run Flow. */
viewabilityConfig: this.props.viewabilityConfig,
onViewableItemsChanged: this._createOnViewableItemsChanged(
// NOTE: we use a wrapper function to allow the actual callback to change
// while still keeping the function provided to native to be stable
(...args) => {
invariant(
this.props.onViewableItemsChanged,
'Changing the nullability of onViewableItemsChanged is not supported. ' +
'Once a function or null is supplied that cannot be changed.',
);
return this.props.onViewableItemsChanged(...args);
},
),
});
}
}
// $FlowFixMe[missing-local-annot]
componentDidUpdate(prevProps: Props<ItemT>) {
invariant(
prevProps.numColumns === this.props.numColumns,
'Changing numColumns on the fly is not supported. Change the key prop on FlatList when ' +
'changing the number of columns to force a fresh render of the component.',
);
invariant(
(prevProps.onViewableItemsChanged == null) ===
(this.props.onViewableItemsChanged == null),
'Changing onViewableItemsChanged nullability on the fly is not supported',
);
invariant(
!deepDiffer(prevProps.viewabilityConfig, this.props.viewabilityConfig),
'Changing viewabilityConfig on the fly is not supported',
);
invariant(
prevProps.viewabilityConfigCallbackPairs ===
this.props.viewabilityConfigCallbackPairs,
'Changing viewabilityConfigCallbackPairs on the fly is not supported',
);
this._checkProps(this.props);
}
_listRef: ?React.ElementRef<typeof VirtualizedList>;
_virtualizedListPairs: Array<ViewabilityConfigCallbackPair> = [];
_captureRef = (ref: ?React.ElementRef<typeof VirtualizedList>) => {
this._listRef = ref;
};
// $FlowFixMe[missing-local-annot]
_checkProps(props: Props<ItemT>) {
const {
horizontal,
columnWrapperStyle,
onViewableItemsChanged,
viewabilityConfigCallbackPairs,
// $FlowFixMe[prop-missing] this prop doesn't exist, is only used for an invariant
getItem,
// $FlowFixMe[prop-missing] this prop doesn't exist, is only used for an invariant
getItemCount,
} = props;
const numColumns = numColumnsOrDefault(this.props.numColumns);
invariant(
!getItem && !getItemCount,
'FlatList does not support custom data formats.',
);
if (numColumns > 1) {
invariant(!horizontal, 'numColumns does not support horizontal.');
} else {
invariant(
!columnWrapperStyle,
'columnWrapperStyle not supported for single column lists',
);
}
invariant(
!(onViewableItemsChanged && viewabilityConfigCallbackPairs),
'FlatList does not support setting both onViewableItemsChanged and ' +
'viewabilityConfigCallbackPairs.',
);
}
_getItem = (
data: $ArrayLike<ItemT>,
index: number,
): ?(ItemT | $ReadOnlyArray<ItemT>) => {
const numColumns = numColumnsOrDefault(this.props.numColumns);
if (numColumns > 1) {
const ret = [];
for (let kk = 0; kk < numColumns; kk++) {
const itemIndex = index * numColumns + kk;
if (itemIndex < data.length) {
const item = data[itemIndex];
ret.push(item);
}
}
return ret;
} else {
return data[index];
}
};
_getItemCount = (data: ?$ArrayLike<ItemT>): number => {
// Legacy behavior of FlatList was to forward "undefined" length if invalid
// data like a non-arraylike object is passed. VirtualizedList would then
// coerce this, and the math would work out to no-op. For compatibility, if
// invalid data is passed, we tell VirtualizedList there are zero items
// available to prevent it from trying to read from the invalid data
// (without propagating invalidly typed data).
if (data != null && isArrayLike(data)) {
const numColumns = numColumnsOrDefault(this.props.numColumns);
return numColumns > 1 ? Math.ceil(data.length / numColumns) : data.length;
} else {
return 0;
}
};
_keyExtractor = (items: ItemT | Array<ItemT>, index: number): string => {
const numColumns = numColumnsOrDefault(this.props.numColumns);
const keyExtractor = this.props.keyExtractor ?? defaultKeyExtractor;
if (numColumns > 1) {
invariant(
Array.isArray(items),
'FlatList: Encountered internal consistency error, expected each item to consist of an ' +
'array with 1-%s columns; instead, received a single item.',
numColumns,
);
return items
.map((item, kk) =>
keyExtractor(((item: $FlowFixMe): ItemT), index * numColumns + kk),
)
.join(':');
}
// $FlowFixMe[incompatible-call] Can't call keyExtractor with an array
return keyExtractor(items, index);
};
_pushMultiColumnViewable(arr: Array<ViewToken>, v: ViewToken): void {
const numColumns = numColumnsOrDefault(this.props.numColumns);
const keyExtractor = this.props.keyExtractor ?? defaultKeyExtractor;
v.item.forEach((item, ii) => {
invariant(v.index != null, 'Missing index!');
const index = v.index * numColumns + ii;
arr.push({...v, item, key: keyExtractor(item, index), index});
});
}
_createOnViewableItemsChanged(
onViewableItemsChanged: ?(info: {
viewableItems: Array<ViewToken>,
changed: Array<ViewToken>,
...
}) => void,
// $FlowFixMe[missing-local-annot]
) {
return (info: {
viewableItems: Array<ViewToken>,
changed: Array<ViewToken>,
...
}) => {
const numColumns = numColumnsOrDefault(this.props.numColumns);
if (onViewableItemsChanged) {
if (numColumns > 1) {
const changed: Array<ViewToken> = [];
const viewableItems: Array<ViewToken> = [];
info.viewableItems.forEach(v =>
this._pushMultiColumnViewable(viewableItems, v),
);
info.changed.forEach(v => this._pushMultiColumnViewable(changed, v));
onViewableItemsChanged({viewableItems, changed});
} else {
onViewableItemsChanged(info);
}
}
};
}
_renderer = (
ListItemComponent: ?(React.ComponentType<any> | React.Element<any>),
renderItem: ?RenderItemType<ItemT>,
columnWrapperStyle: ?ViewStyleProp,
numColumns: ?number,
extraData: ?any,
// $FlowFixMe[missing-local-annot]
) => {
const cols = numColumnsOrDefault(numColumns);
const render = (props: RenderItemProps<ItemT>): React.Node => {
if (ListItemComponent) {
// $FlowFixMe[not-a-component] Component isn't valid
// $FlowFixMe[incompatible-type-arg] Component isn't valid
// $FlowFixMe[incompatible-return] Component isn't valid
return <ListItemComponent {...props} />;
} else if (renderItem) {
// $FlowFixMe[incompatible-call]
return renderItem(props);
} else {
return null;
}
};
const renderProp = (info: RenderItemProps<ItemT>) => {
if (cols > 1) {
const {item, index} = info;
invariant(
Array.isArray(item),
'Expected array of items with numColumns > 1',
);
return (
<View style={StyleSheet.compose(styles.row, columnWrapperStyle)}>
{item.map((it, kk) => {
const element = render({
// $FlowFixMe[incompatible-call]
item: it,
index: index * cols + kk,
separators: info.separators,
});
return element != null ? (
<React.Fragment key={kk}>{element}</React.Fragment>
) : null;
})}
</View>
);
} else {
return render(info);
}
};
return ListItemComponent
? {ListItemComponent: renderProp}
: {renderItem: renderProp};
};
// $FlowFixMe[missing-local-annot]
_memoizedRenderer = memoizeOne(this._renderer);
render(): React.Node {
const {
numColumns,
columnWrapperStyle,
removeClippedSubviews: _removeClippedSubviews,
strictMode = false,
...restProps
} = this.props;
const renderer = strictMode ? this._memoizedRenderer : this._renderer;
return (
// $FlowFixMe[incompatible-exact] - `restProps` (`Props`) is inexact.
<VirtualizedList
{...restProps}
getItem={this._getItem}
getItemCount={this._getItemCount}
keyExtractor={this._keyExtractor}
ref={this._captureRef}
viewabilityConfigCallbackPairs={this._virtualizedListPairs}
removeClippedSubviews={removeClippedSubviewsOrDefault(
_removeClippedSubviews,
)}
{...renderer(
this.props.ListItemComponent,
this.props.renderItem,
columnWrapperStyle,
numColumns,
this.props.extraData,
)}
/>
);
}
}
const styles = StyleSheet.create({
row: {flexDirection: 'row'},
});
module.exports = FlatList;

Просмотреть файл

@ -0,0 +1,11 @@
/**
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*
* @format
* @flow strict-local
*/
export * from '../../../src/private/specs/modules/NativeDialogManagerWindows';
import NativeDialogManagerWindows from '../../../src/private/specs/modules/NativeDialogManagerWindows';
export default NativeDialogManagerWindows;

Просмотреть файл

@ -6,26 +6,6 @@
* @flow strict
*/
import type {TurboModule} from '../TurboModule/RCTExport';
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
export type PlatformConstantsWindows = {|
isTesting: boolean,
isDisableAnimations?: boolean,
reactNativeVersion: {|
major: number,
minor: number,
patch: number,
prerelease: ?string,
|},
osVersion: number,
|};
export interface Spec extends TurboModule {
+getConstants: () => PlatformConstantsWindows;
}
export default (TurboModuleRegistry.getEnforcing<Spec>(
'PlatformConstants',
): Spec);
export * from '../../src/private/specs/modules/NativePlatformConstantsWin';
import NativePlatformConstantsWin from '../../src/private/specs/modules/NativePlatformConstantsWin';
export default NativePlatformConstantsWin;

Просмотреть файл

@ -42,6 +42,8 @@ type IOSPlatform = {
// $FlowFixMe[unsafe-getters-setters]
get isTV(): boolean,
// $FlowFixMe[unsafe-getters-setters]
get isVision(): boolean,
// $FlowFixMe[unsafe-getters-setters]
get isTesting(): boolean,
// $FlowFixMe[unsafe-getters-setters]
get isDisableAnimations(): boolean,
@ -76,6 +78,8 @@ type AndroidPlatform = {
// $FlowFixMe[unsafe-getters-setters]
get isTV(): boolean,
// $FlowFixMe[unsafe-getters-setters]
get isVision(): boolean,
// $FlowFixMe[unsafe-getters-setters]
get isTesting(): boolean,
// $FlowFixMe[unsafe-getters-setters]
get isDisableAnimations(): boolean,

Просмотреть файл

@ -0,0 +1,33 @@
/**
* Copyright (c) Microsoft Corporation.
* Licensed under the MIT License.
*
* @flow strict
* @format
*/
import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport';
import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry';
export type HighContrastColors = {|
ButtonFaceColor: string,
ButtonTextColor: string,
GrayTextColor: string,
HighlightColor: string,
HighlightTextColor: string,
HotlightColor: string,
WindowColor: string,
WindowTextColor: string,
|};
export type AppThemeData = {|
isHighContrast: boolean,
highContrastColors: HighContrastColors,
|};
export interface Spec extends TurboModule {
+getConstants: () => AppThemeData;
}
export default (TurboModuleRegistry.get<Spec>('AppTheme'): ?Spec);

Просмотреть файл

@ -8,9 +8,10 @@
* @format
*/
import type {TurboModule} from '../TurboModule/RCTExport';
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
import type {Int32} from '../Types/CodegenTypes';
import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport';
import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry';
import type {Int32} from '../../../../Libraries/Types/CodegenTypes';
/* 'buttonClicked' | 'dismissed' */
type DialogAction = string;

Просмотреть файл

@ -0,0 +1,33 @@
/**
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @flow strict
* @format
*/
import type {TurboModule} from '../../../../Libraries/TurboModule/RCTExport';
import * as TurboModuleRegistry from '../../../../Libraries/TurboModule/TurboModuleRegistry';
export type PlatformConstantsWindows = {|
isTesting: boolean,
isDisableAnimations?: boolean,
reactNativeVersion: {|
major: number,
minor: number,
patch: number,
prerelease: ?string,
|},
osVersion: number,
|};
export interface Spec extends TurboModule {
+getConstants: () => PlatformConstantsWindows;
}
export default (TurboModuleRegistry.getEnforcing<Spec>(
'PlatformConstants',
): Spec);

Просмотреть файл

@ -28,7 +28,7 @@ function getRnwInfo(config = {}, options = {}) {
const rnwVersion = require(path.join(rnwPath, 'package.json')).version;
const devMode = existsSync(path.join(rnwPath, 'src'));
const devMode = existsSync(path.join(rnwPath, 'src-win'));
if (options?.logging) {
console.log(

185
yarn.lock
Просмотреть файл

@ -2265,27 +2265,27 @@
resolved "https://registry.yarnpkg.com/@react-native-picker/picker/-/picker-2.6.1.tgz#3b20ddd1385fab0487db103dc6519570f8892e6d"
integrity sha512-oJftvmLOj6Y6/bF4kPcK6L83yNBALGmqNYugf94BzP0FQGpHBwimVN2ygqkQ2Sn2ZU3pGUZMs0jV6+Gku2GyYg==
"@react-native/assets-registry@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.74.0-nightly-20240115-0c7008f28.tgz#dd5c1654d5aedd2a7e50fd6203ecb53f5ce8847e"
integrity sha512-lXf1gajVy+qdd7oS9XB3c404ICa9rsHXq30YW40d0elgJqEjtPoHPCLqbeqbVpdtmO7oUhUGeM+52Ia0Zow2CQ==
"@react-native/assets-registry@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/assets-registry/-/assets-registry-0.74.0-nightly-20240122-4e92f87df.tgz#7c8fcf1be13cd973344ec6f18b7d3e0cda5ee563"
integrity sha512-OTfwN8onKN3pnX1jYuiwVPsl//u3ss8XzLPwaAtgixn28gsz1BFLpPfd+1mMqKd93ZaUBXuMcNMyqPtvbKfVEA==
"@react-native/assets@1.0.0":
version "1.0.0"
resolved "https://registry.yarnpkg.com/@react-native/assets/-/assets-1.0.0.tgz#c6f9bf63d274bafc8e970628de24986b30a55c8e"
integrity sha512-KrwSpS1tKI70wuKl68DwJZYEvXktDHdZMG0k2AXD/rJVSlB23/X2CB2cutVR0HwNMJIal9HOUOBB2rVfa6UGtQ==
"@react-native/babel-plugin-codegen@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.0-nightly-20240115-0c7008f28.tgz#a81577046c9cacdface6a4e78ede4d49fa01e485"
integrity sha512-ly3XOvTW94vTjLEv9O/ZdYgoAk0PqCPtzjIuJAx34oBaX/RRuivQ4t4eyNNJl/xcuySun7fToxATV8XCGyIQTQ==
"@react-native/babel-plugin-codegen@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/babel-plugin-codegen/-/babel-plugin-codegen-0.74.0-nightly-20240122-4e92f87df.tgz#6b75308ef5a3eeba2ed0aa202cf7ea444c88ecae"
integrity sha512-WW4WPuQunJbh5MwZISqP7j0cGaRIg9eOISow8MZ4gxr06IXwbAy8/rKv3+u4BwDdRCV+2SM/J0aNo5Fsuc9j2Q==
dependencies:
"@react-native/codegen" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/codegen" "0.74.0-nightly-20240122-4e92f87df"
"@react-native/babel-preset@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.74.0-nightly-20240115-0c7008f28.tgz#c25a4847f53184a2484ef99c788bf563f3a9670f"
integrity sha512-r1RQY6/oixxjNnzWGmvkA60YgcWT0SuXAKazmCYHhN+C4LOoyJluWZ1l+OZ8Ur5sf4AV9mbjmk58gxjqaphVww==
"@react-native/babel-preset@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/babel-preset/-/babel-preset-0.74.0-nightly-20240122-4e92f87df.tgz#7190bf6b8562c8e5bddb784766d526e24923612a"
integrity sha512-lgrhRAjWHFbV4Zh34+7mBLeWygJRuXwD7cJ8OHiO3yUIEggzGHSnmtbVw3yvm9PS8cffFY03MiqzVK8gXpvN0g==
dependencies:
"@babel/core" "^7.20.0"
"@babel/plugin-proposal-async-generator-functions" "^7.0.0"
@ -2327,14 +2327,14 @@
"@babel/plugin-transform-typescript" "^7.5.0"
"@babel/plugin-transform-unicode-regex" "^7.0.0"
"@babel/template" "^7.0.0"
"@react-native/babel-plugin-codegen" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/babel-plugin-codegen" "0.74.0-nightly-20240122-4e92f87df"
babel-plugin-transform-flow-enums "^0.0.2"
react-refresh "^0.14.0"
"@react-native/codegen@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.74.0-nightly-20240115-0c7008f28.tgz#993e869f34095925b54e6bd97e748770287d8302"
integrity sha512-1w6uotMeWIkXfgbMwrJIUlA4Uu3F3pEkP2LGVXPOHJuUnJUlP2Z6d/J9E4hIrati7IlW0YU11C5ez8leQe172A==
"@react-native/codegen@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/codegen/-/codegen-0.74.0-nightly-20240122-4e92f87df.tgz#a456d3e65d37fff1336c9b26104039609f76c1ec"
integrity sha512-MveM4MyAG+XXkQjjcrCzSRrrbZCeoh487fGKu2JVwYTuKN6fwWLQBpEOS6o4albyLW27BOVHI+0tlTBQBIOhoA==
dependencies:
"@babel/parser" "^7.20.0"
glob "^7.1.1"
@ -2344,53 +2344,55 @@
mkdirp "^0.5.1"
nullthrows "^1.1.1"
"@react-native/community-cli-plugin@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.0-nightly-20240115-0c7008f28.tgz#33fd48304aaba3506b3ba6ccade6ac1cacb4fef0"
integrity sha512-Am1FU+XreaUXsAwzWLIFANSXrUkOQmewSB7oXpYOwg/NOwITHpnep+MCds/16S3QQ+VI43d8b/XBVrtK8nvKQw==
"@react-native/community-cli-plugin@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/community-cli-plugin/-/community-cli-plugin-0.74.0-nightly-20240122-4e92f87df.tgz#d23c4d8778d2ff2d9e9fdd66677235bc4763ae10"
integrity sha512-0CPom8HV8Y0J0y8Hh3EVIm6stDveVaxAmtniQZRJMkKKbm/QXaKFc2HqD8We35kWN3yMm0V5WftH9JIvgq7Pnw==
dependencies:
"@react-native-community/cli-server-api" "13.0.0"
"@react-native-community/cli-tools" "13.0.0"
"@react-native/dev-middleware" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/metro-babel-transformer" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/dev-middleware" "0.74.0-nightly-20240122-4e92f87df"
"@react-native/metro-babel-transformer" "0.74.0-nightly-20240122-4e92f87df"
chalk "^4.0.0"
execa "^5.1.1"
metro "^0.80.3"
metro-config "^0.80.3"
metro-core "^0.80.3"
node-fetch "^2.2.0"
querystring "^0.2.1"
readline "^1.3.0"
"@react-native/debugger-frontend@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.74.0-nightly-20240115-0c7008f28.tgz#59e73d14c0e613e7d484b4b466002766f7f0a015"
integrity sha512-PxhDXGRagjpAOZDzJMwaRP7hB1s3mR8yxJTsmmTwt6DiqVUx5uAsVHWUdgv4HPMJ+yLWMO/beFvytDFXsjbeGQ==
"@react-native/debugger-frontend@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/debugger-frontend/-/debugger-frontend-0.74.0-nightly-20240122-4e92f87df.tgz#8fa397bf448ac5e38919f6a10ade2643e4929d31"
integrity sha512-jD1S8JzmPdZBaQVx1I4yvwlsrJ4gCLRi/ZZTgnqi36xtxK0i0NlcQc3tBZ8JmyeJ8Xy3cpgN0wiPD+oJjWuW4Q==
"@react-native/dev-middleware@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.74.0-nightly-20240115-0c7008f28.tgz#19cb2dfbfe5a0875e54d97e1d5d70a9e8b14d663"
integrity sha512-k0FWAUiY8IVTd28p9ILih9UNFl72XtKRWuCwie1dXWw1SEzTI3SwQTENGrc7Q38BmlKMrYGaFsCeA15tBY1pUA==
"@react-native/dev-middleware@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/dev-middleware/-/dev-middleware-0.74.0-nightly-20240122-4e92f87df.tgz#316368fd233995e34662b21c1b6d4e262b2dbb04"
integrity sha512-o2vPyeoPUqimuLlLDKysbfcwEZJmbtyCa1lXzBr2n2UlXJSqDhRzLaGHu1xb5b7HTmt1n7TpC7bafwLNVniziA==
dependencies:
"@isaacs/ttlcache" "^1.4.1"
"@react-native/debugger-frontend" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/debugger-frontend" "0.74.0-nightly-20240122-4e92f87df"
"@rnx-kit/chromium-edge-launcher" "^1.0.0"
chrome-launcher "^0.15.2"
connect "^3.6.5"
debug "^2.2.0"
node-fetch "^2.2.0"
nullthrows "^1.1.1"
open "^7.0.3"
selfsigned "^2.4.1"
serve-static "^1.13.1"
temp-dir "^2.0.0"
"@react-native/eslint-config@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/eslint-config/-/eslint-config-0.74.0-nightly-20240115-0c7008f28.tgz#f3c892c1874a05737b5bc0062272fda1cb7ad5d5"
integrity sha512-6p7MU5jr+Pv/fOYtODB2lNojebPkyJeict4sS7GhUkphY+tIF/RZLHOpXIEM4n3D51M4PVX2U7YtZe+fKU8wNQ==
"@react-native/eslint-config@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/eslint-config/-/eslint-config-0.74.0-nightly-20240122-4e92f87df.tgz#c92ad7a3e996a3860026b840bd4c9e269e31261e"
integrity sha512-XrQYRmxMLhfJZx0A3qV1zVkBWCQQzYtwlsvQecs0TSsQ/TAMza63zxNfFJhz2PAlJ4LJBv/dqX5SuhreI8tVOw==
dependencies:
"@babel/core" "^7.20.0"
"@babel/eslint-parser" "^7.20.0"
"@react-native/eslint-plugin" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/eslint-plugin" "0.74.0-nightly-20240122-4e92f87df"
"@typescript-eslint/eslint-plugin" "^6.7.4"
"@typescript-eslint/parser" "^6.7.4"
eslint-config-prettier "^8.5.0"
@ -2402,50 +2404,50 @@
eslint-plugin-react-hooks "^4.6.0"
eslint-plugin-react-native "^4.0.0"
"@react-native/eslint-plugin@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.74.0-nightly-20240115-0c7008f28.tgz#61fb1b503e30aaa69d5282a67e8a0b5b742cff0c"
integrity sha512-k5GpFWHc5l4v/qLtTgoWNe9QRqLqy8znP6/UYxibkU2VuG5aranKZQ1mdZ1s7UDco8/wOu3ci9MNbj/eB3kUBw==
"@react-native/eslint-plugin@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/eslint-plugin/-/eslint-plugin-0.74.0-nightly-20240122-4e92f87df.tgz#9e40aaa6084287bae8a6b99e7c1ea5e67b74ae96"
integrity sha512-F15k4QZwHuUIMSrgqv47VgSfsy7tuPHqtRe0X6IRh/XlH1TCKi7Vpv1LDTjPT2OlDcniBvD8KcQ49l0ss4WKtw==
"@react-native/gradle-plugin@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.74.0-nightly-20240115-0c7008f28.tgz#412127ad54b34bd052e246a800505aaf2dae9254"
integrity sha512-FeuaMFuBwSy7JXN7Y/cpaZFLCBFzUmAkQ16Xk89xafigI7LK+8RxaRCOYDQxRY/+FbPywyh6eTbgOnvkBzl+qg==
"@react-native/gradle-plugin@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/gradle-plugin/-/gradle-plugin-0.74.0-nightly-20240122-4e92f87df.tgz#781afea4aaec0c06572d4c3dc10a9b38e1213460"
integrity sha512-/hg2mjpduLlEju6ySqMhEvB6Dpxb2xfW9OKnWiIbVYkg1IhTE9AZ6e/s/3s8DEl0gjyOXP9fJTJjOOIAljAowA==
"@react-native/js-polyfills@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.74.0-nightly-20240115-0c7008f28.tgz#e5fa1410c6c31ee4eaf72a5dbb09cf8a7c284c4c"
integrity sha512-Yqc122VoyTMUWBD8Q0ngh+CpJdtSgJPNDBxc8+bUJoPDU9HRjOmsp/AwU5pCsTtZnA1yglZztAcpOo8U3pHHQA==
"@react-native/js-polyfills@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/js-polyfills/-/js-polyfills-0.74.0-nightly-20240122-4e92f87df.tgz#eb231793f20750d1c4abb0265b57dadf9120c899"
integrity sha512-yDSF0qN/DZPBFYTyyI8fnvPLRbK+hL/xJFvCol6fn690gtm0QV7e0B9mXSaLkC4PJ156wy0VIFZDtkevBMEr/w==
"@react-native/metro-babel-transformer@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.0-nightly-20240115-0c7008f28.tgz#c9a2f26d73aa9b92335ac009b8e870de63b75c87"
integrity sha512-lqQy30Hfh/TJJI7AqPsROBBW8vP0AecfL3VuOu+zhqcvkzDAR4m2zDUYlBaln9SCwqRSuJA+00cKcYmc3R+53w==
"@react-native/metro-babel-transformer@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/metro-babel-transformer/-/metro-babel-transformer-0.74.0-nightly-20240122-4e92f87df.tgz#44e753934fa742a823a78bd51ff139434f3e33f5"
integrity sha512-8GNWSeFeTd4vVTXQTFxQtLXfBt78n0DwuMaP8NqAalDmLPicQOmIpRdwMiDJ0Pu7tH88yhcIjfyFXis9uEEYDg==
dependencies:
"@babel/core" "^7.20.0"
"@react-native/babel-preset" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/babel-preset" "0.74.0-nightly-20240122-4e92f87df"
hermes-parser "0.18.2"
nullthrows "^1.1.1"
"@react-native/metro-config@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.74.0-nightly-20240115-0c7008f28.tgz#d084449df7267518b43add53b8a4fd8f6336f3b4"
integrity sha512-cesNgu6uA2scMnDdz7mmdvLyFrWPLbYjjCu2RnUvmHPagf4uEkUkFIOZRHC+QJfs0D/Hh5VG/cpSY2F149p4tg==
"@react-native/metro-config@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/metro-config/-/metro-config-0.74.0-nightly-20240122-4e92f87df.tgz#311e1f182c8f7e0f80a754b53916ed9af74c41e1"
integrity sha512-NJjrL8SMQg9OcJ/IzJYTzyYozx0vgODvk8WMG0Eu6JU7Rdmk/jK8QcZ0BJLViiIXW6H5Z63LsCERYlIPI0Ye7w==
dependencies:
"@react-native/js-polyfills" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/metro-babel-transformer" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/js-polyfills" "0.74.0-nightly-20240122-4e92f87df"
"@react-native/metro-babel-transformer" "0.74.0-nightly-20240122-4e92f87df"
metro-config "^0.80.3"
metro-runtime "^0.80.3"
"@react-native/normalize-colors@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.74.0-nightly-20240115-0c7008f28.tgz#ed5447796eb8f804232dd27f6294647c83c637d0"
integrity sha512-j+Kl2nNt0y9UTbLbP6tqnjyxRB0OREvy2QnlE1RUqxygqCn/yPx/WlndfypZ+cfHkiL/+p1JYtrrqDXDhiLlRQ==
"@react-native/normalize-colors@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/normalize-colors/-/normalize-colors-0.74.0-nightly-20240122-4e92f87df.tgz#3190455eee02215c5d09951945d20f1b36f569d3"
integrity sha512-23eGrSluB5R5ieIc3QYlYT8rkLmQ1lSGkMwdSwuUDlFL/7kzDErxocBWUVEQRl0ohucTgy8FbKSmxQEgjpWz0A==
"@react-native/virtualized-lists@0.74.0-nightly-20240115-0c7008f28":
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.74.0-nightly-20240115-0c7008f28.tgz#f3b7e068e9b387d83ed1a843b5e2496ad77961c6"
integrity sha512-z1YL9URGs1e1ciI4fJycJaoCL5qYE2Dl1j46F8IWqModSWLM4qCVbetkZuUzs9Havf/tO2p4zoOwnvXgFDluiw==
"@react-native/virtualized-lists@0.74.0-nightly-20240122-4e92f87df":
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/@react-native/virtualized-lists/-/virtualized-lists-0.74.0-nightly-20240122-4e92f87df.tgz#76646ce78ead4990a798e038ff7661333d322731"
integrity sha512-zGuu+LO+T+RDJwlG7kW1Mcp7p0HeptpP51M1FObaRtADaUWtH1zQne+cN1T5qw+6Z+Q8QGUKHftAYuuYXFsAMg==
dependencies:
invariant "^2.2.4"
nullthrows "^1.1.1"
@ -6520,10 +6522,10 @@ flow-bin@^0.217.2:
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.217.2.tgz#96affa17f3cb303019f740bffeb28cfab7ce1250"
integrity sha512-fk4NcfybYjzlww1sEsfk71nqXvonAYpMRFEjmZxibDWWBiaw8DGmqXWZ7XzSunVB15VkJfOstn/sYP1EYPPyWg==
flow-bin@^0.226.0:
version "0.226.0"
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.226.0.tgz#b245847b749ab20756ef74c91d96619f68d18430"
integrity sha512-q8hXSRhZ+I14jS0KGDDsPYCvPufvBexk6nJXSOsSP6DgCuXbvCOByWhsXRAjPtmXKmO8v9RKSJm1kRaWaf0fZw==
flow-bin@^0.227.0:
version "0.227.0"
resolved "https://registry.yarnpkg.com/flow-bin/-/flow-bin-0.227.0.tgz#64eba189d2b233d04171828983dd5e6b2abadc3b"
integrity sha512-UkIzYbyUDmfztEbvS39ksR+vSu9WwUJQ4D+UvIW0ILrDuhPRN3XjheB1+mv2b/4H011HCM5y9nENXrDEaiIKtg==
flow-enums-runtime@^0.0.5:
version "0.0.5"
@ -10442,6 +10444,11 @@ qs@~6.5.2:
resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.3.tgz#3aeeffc91967ef6e35c0e488ef46fb296ab76aad"
integrity sha512-qxXIEh4pCGfHICj1mAJQ2/2XVZkjCDTcEgfoSQxc/fYivUZxTkk7L3bDBJSoNrEzXI17oUO5Dp07ktqE5KzczA==
querystring@^0.2.1:
version "0.2.1"
resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.1.tgz#40d77615bb09d16902a85c3e38aa8b5ed761c2dd"
integrity sha512-wkvS7mL/JMugcup3/rMitHmd9ecIGd2lhFhK9N3UUQ450h66d1r3Y9nvXzQAW1Lq+wyx61k/1pfKS5KuKiyEbg==
queue-microtask@^1.2.2:
version "1.2.3"
resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@ -10474,10 +10481,10 @@ react-clone-referenced-element@^1.0.1:
resolved "https://registry.yarnpkg.com/react-clone-referenced-element/-/react-clone-referenced-element-1.1.1.tgz#8d76727dc0459788e461741e804a512d20757381"
integrity sha512-LZBPvQV8W0B5dFzXFu+D3Tpil8YHS8tO00iFsfXcTLdtpuH7XyvaHqHcoz4hd4uNPQCZ30fceh+s7mLznzMXvg==
react-devtools-core@^4.27.7:
version "4.28.5"
resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-4.28.5.tgz#c8442b91f068cdf0c899c543907f7f27d79c2508"
integrity sha512-cq/o30z9W2Wb4rzBefjv5fBalHU0rJGZCHAkf/RHSBWSSYwh8PlQTqqOJmgIIbBtpj27T6FIPXeomIjZtCNVqA==
react-devtools-core@^5.0.0:
version "5.0.0"
resolved "https://registry.yarnpkg.com/react-devtools-core/-/react-devtools-core-5.0.0.tgz#50b04a4dbfa62badbe4d86529e9478c396988b31"
integrity sha512-SAAMLacNDfFjMJjmbXURNWtrTyARi9xTqGkY48Btw5cIWlr1wgxfWYZKxoUZav1qqmhbpgTzSmmF+cpMHGHY3A==
dependencies:
shell-quote "^1.6.1"
ws "^7"
@ -10504,22 +10511,22 @@ react-native-xaml@^0.0.78:
dependencies:
"@types/react" "*"
react-native@0.74.0-nightly-20240115-0c7008f28:
version "0.74.0-nightly-20240115-0c7008f28"
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.74.0-nightly-20240115-0c7008f28.tgz#3cd4303b1e95755d2506be781294801310a761a4"
integrity sha512-7TOO/QLk9do1DgN5ckB5OalKyC9QklBInPjhz0xdVxux1B6JRD92CZQFa2L1Zp3hBleI8PvtvNSXEnVx4IZYcg==
react-native@0.74.0-nightly-20240122-4e92f87df:
version "0.74.0-nightly-20240122-4e92f87df"
resolved "https://registry.yarnpkg.com/react-native/-/react-native-0.74.0-nightly-20240122-4e92f87df.tgz#42ef0f8adac7d17aa43276eef3c540b5972bf4c0"
integrity sha512-3U4+GTSwEwJVua5UmjXIMaKlLvCiNQy91QnR2A3boYEabBRe1J4rL3/k49oy1GD9BAJBim7lfSejjBeckSdgwA==
dependencies:
"@jest/create-cache-key-function" "^29.6.3"
"@react-native-community/cli" "13.0.0"
"@react-native-community/cli-platform-android" "13.0.0"
"@react-native-community/cli-platform-ios" "13.0.0"
"@react-native/assets-registry" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/codegen" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/community-cli-plugin" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/gradle-plugin" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/js-polyfills" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/normalize-colors" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/virtualized-lists" "0.74.0-nightly-20240115-0c7008f28"
"@react-native/assets-registry" "0.74.0-nightly-20240122-4e92f87df"
"@react-native/codegen" "0.74.0-nightly-20240122-4e92f87df"
"@react-native/community-cli-plugin" "0.74.0-nightly-20240122-4e92f87df"
"@react-native/gradle-plugin" "0.74.0-nightly-20240122-4e92f87df"
"@react-native/js-polyfills" "0.74.0-nightly-20240122-4e92f87df"
"@react-native/normalize-colors" "0.74.0-nightly-20240122-4e92f87df"
"@react-native/virtualized-lists" "0.74.0-nightly-20240122-4e92f87df"
abort-controller "^3.0.0"
anser "^1.4.9"
ansi-regex "^5.0.0"
@ -10537,7 +10544,7 @@ react-native@0.74.0-nightly-20240115-0c7008f28:
nullthrows "^1.1.1"
pretty-format "^26.5.2"
promise "^8.3.0"
react-devtools-core "^4.27.7"
react-devtools-core "^5.0.0"
react-refresh "^0.14.0"
react-shallow-renderer "^16.15.0"
regenerator-runtime "^0.13.2"