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 commit3159bf1180
. * Fix E2E Tests * Fix E2E Tests * Revert "Fix E2E Tests" This reverts commit261bef2af5
. * 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:
Родитель
06b8842c48
Коммит
1a0c176131
|
@ -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);
|
45
packages/@office-iss/react-native-win32/src-win/src/private/specs/modules/NativeImageLoaderWin32.js
поставляемый
Normal file
45
packages/@office-iss/react-native-win32/src-win/src/private/specs/modules/NativeImageLoaderWin32.js
поставляемый
Normal file
|
@ -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);
|
37
packages/@office-iss/react-native-win32/src-win/src/private/specs/modules/NativePlatformConstantsWin.js
поставляемый
Normal file
37
packages/@office-iss/react-native-win32/src-win/src/private/specs/modules/NativePlatformConstantsWin.js
поставляемый
Normal file
|
@ -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
|
||||
|
|
|
@ -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
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"
|
||||
|
|
Загрузка…
Ссылка в новой задаче