react-native-windows 0.72.0-preview.1 → 0.72.0-preview.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Directory.Build.props +2 -2
- package/Folly/cgmanifest.json +1 -1
- package/Libraries/Components/TraceUpdateOverlay/TraceUpdateOverlay.js +6 -16
- package/Libraries/Components/View/View.js +29 -36
- package/Libraries/Core/ReactNativeVersion.js +2 -2
- package/Libraries/Core/ReactNativeVersionCheck.js +5 -1
- package/Libraries/Inspector/DevtoolsOverlay.js +3 -6
- package/Libraries/Pressability/Pressability.js +1 -1
- package/Libraries/ReactNative/UIManager.js +27 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.js +15 -33
- package/Libraries/Utilities/NativeDevSplitBundleLoader.js +19 -0
- package/Libraries/Utilities/useColorScheme.js +1 -1
- package/Libraries/Utilities/useColorScheme.windows.js +26 -0
- package/PropertySheets/Generated/PackageVersion.g.props +2 -2
- package/Scripts/rnw-dependencies.ps1 +3 -3
- package/codegen/NativeDevSplitBundleLoaderSpec.g.h +33 -0
- package/codegen/rnwcoreJSI-generated.cpp +8 -0
- package/codegen/rnwcoreJSI.h +44 -0
- package/package.json +12 -12
package/Directory.Build.props
CHANGED
|
@@ -16,8 +16,8 @@
|
|
|
16
16
|
-->
|
|
17
17
|
<EnableSourceLink Condition="'$(EnableSourceLink)' == ''">false</EnableSourceLink>
|
|
18
18
|
<!-- When bumping the Folly version, be sure to bump the git hash of that version's commit and build Folly.vcxproj (to update its cgmanifest.json) too. -->
|
|
19
|
-
<FollyVersion>2022.11.
|
|
20
|
-
<FollyCommitHash>
|
|
19
|
+
<FollyVersion>2022.11.28.00</FollyVersion>
|
|
20
|
+
<FollyCommitHash>6ed36117cdc4831f3a3951e013ae76b405e88e15</FollyCommitHash>
|
|
21
21
|
<!-- When bumping the fmt version, be sure to bump the git hash of that version's commit and build fmt.vcxproj (to update its cgmanifest.json) too. -->
|
|
22
22
|
<FmtVersion>8.0.0</FmtVersion>
|
|
23
23
|
<FmtCommitHash>9e8b86fd2d9806672cc73133d21780dd182bfd24</FmtCommitHash>
|
package/Folly/cgmanifest.json
CHANGED
|
@@ -33,7 +33,10 @@ interface Agent {
|
|
|
33
33
|
removeListener(event: $Keys<AgentEvents>, listener: () => void): void;
|
|
34
34
|
}
|
|
35
35
|
|
|
36
|
-
type
|
|
36
|
+
type TraceNode = {
|
|
37
|
+
publicInstance?: TraceNode,
|
|
38
|
+
// TODO: remove this field when syncing the new version of the renderer from React to React Native.
|
|
39
|
+
canonical?: TraceNode,
|
|
37
40
|
measure?: (
|
|
38
41
|
(
|
|
39
42
|
x: number,
|
|
@@ -46,16 +49,6 @@ type PublicInstance = {
|
|
|
46
49
|
) => void,
|
|
47
50
|
};
|
|
48
51
|
|
|
49
|
-
type TraceNode =
|
|
50
|
-
| PublicInstance
|
|
51
|
-
| {
|
|
52
|
-
canonical?:
|
|
53
|
-
| PublicInstance // TODO: remove this variant when syncing the new version of the renderer from React to React Native.
|
|
54
|
-
| {
|
|
55
|
-
publicInstance?: PublicInstance,
|
|
56
|
-
},
|
|
57
|
-
};
|
|
58
|
-
|
|
59
52
|
type ReactDevToolsGlobalHook = {
|
|
60
53
|
on: (eventName: string, (agent: Agent) => void) => void,
|
|
61
54
|
off: (eventName: string, (agent: Agent) => void) => void,
|
|
@@ -109,14 +102,11 @@ export default function TraceUpdateOverlay(): React.Node {
|
|
|
109
102
|
|
|
110
103
|
const newFramesToDraw: Array<Promise<Overlay>> = [];
|
|
111
104
|
nodesToDraw.forEach(({node, color}) => {
|
|
112
|
-
// `
|
|
105
|
+
// `publicInstance` => Fabric
|
|
113
106
|
// TODO: remove this check when syncing the new version of the renderer from React to React Native.
|
|
114
107
|
// `canonical` => Legacy Fabric
|
|
115
108
|
// `node` => Legacy renderer
|
|
116
|
-
const component =
|
|
117
|
-
(node.canonical && node.canonical.publicInstance) ??
|
|
118
|
-
node.canonical ??
|
|
119
|
-
node;
|
|
109
|
+
const component = node.publicInstance ?? node.canonical ?? node;
|
|
120
110
|
if (!component || !component.measure) {
|
|
121
111
|
return;
|
|
122
112
|
}
|
|
@@ -62,7 +62,6 @@ const View: React.AbstractComponent<
|
|
|
62
62
|
}: ViewProps,
|
|
63
63
|
forwardedRef,
|
|
64
64
|
) => {
|
|
65
|
-
const hasTextAncestor = React.useContext(TextAncestor);
|
|
66
65
|
const _accessibilityLabelledBy =
|
|
67
66
|
ariaLabelledBy?.split(/\s*,\s*/g) ?? accessibilityLabelledBy;
|
|
68
67
|
|
|
@@ -104,42 +103,36 @@ const View: React.AbstractComponent<
|
|
|
104
103
|
|
|
105
104
|
const newPointerEvents = style?.pointerEvents || pointerEvents;
|
|
106
105
|
|
|
107
|
-
|
|
108
|
-
<
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
106
|
+
return (
|
|
107
|
+
<TextAncestor.Provider value={false}>
|
|
108
|
+
<ViewNativeComponent
|
|
109
|
+
{...otherProps}
|
|
110
|
+
accessibilityLiveRegion={
|
|
111
|
+
ariaLive === 'off' ? 'none' : ariaLive ?? accessibilityLiveRegion
|
|
112
|
+
}
|
|
113
|
+
accessibilityLabel={ariaLabel ?? accessibilityLabel}
|
|
114
|
+
focusable={tabIndex !== undefined ? !tabIndex : focusable}
|
|
115
|
+
accessibilityState={_accessibilityState}
|
|
116
|
+
accessibilityRole={
|
|
117
|
+
role ? getAccessibilityRoleFromRole(role) : accessibilityRole
|
|
118
|
+
}
|
|
119
|
+
accessibilityElementsHidden={
|
|
120
|
+
ariaHidden ?? accessibilityElementsHidden
|
|
121
|
+
}
|
|
122
|
+
accessibilityLabelledBy={_accessibilityLabelledBy}
|
|
123
|
+
accessibilityValue={_accessibilityValue}
|
|
124
|
+
importantForAccessibility={
|
|
125
|
+
ariaHidden === true
|
|
126
|
+
? 'no-hide-descendants'
|
|
127
|
+
: importantForAccessibility
|
|
128
|
+
}
|
|
129
|
+
nativeID={id ?? nativeID}
|
|
130
|
+
style={style}
|
|
131
|
+
pointerEvents={newPointerEvents}
|
|
132
|
+
ref={forwardedRef}
|
|
133
|
+
/>
|
|
134
|
+
</TextAncestor.Provider>
|
|
132
135
|
);
|
|
133
|
-
|
|
134
|
-
if (hasTextAncestor) {
|
|
135
|
-
return (
|
|
136
|
-
<TextAncestor.Provider value={false}>
|
|
137
|
-
{actualView}
|
|
138
|
-
</TextAncestor.Provider>
|
|
139
|
-
);
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
return actualView;
|
|
143
136
|
},
|
|
144
137
|
);
|
|
145
138
|
|
|
@@ -39,8 +39,12 @@ exports.checkVersions = function checkVersions(): void {
|
|
|
39
39
|
}
|
|
40
40
|
};
|
|
41
41
|
|
|
42
|
+
// Note: in OSS, the prerelease version is usually 0.Y.0-rc.W, so it is a string and not a number
|
|
43
|
+
// Then we need to keep supporting that object shape.
|
|
42
44
|
function _formatVersion(
|
|
43
|
-
version:
|
|
45
|
+
version:
|
|
46
|
+
| (typeof Platform)['constants']['reactNativeVersion']
|
|
47
|
+
| {major: number, minor: number, patch: number, prerelease: ?string},
|
|
44
48
|
): string {
|
|
45
49
|
return (
|
|
46
50
|
`${version.major}.${version.minor}.${version.patch}` +
|
|
@@ -52,14 +52,11 @@ export default function DevtoolsOverlay({
|
|
|
52
52
|
function onAgentShowNativeHighlight(node: any) {
|
|
53
53
|
clearTimeout(hideTimeoutId);
|
|
54
54
|
|
|
55
|
-
// `
|
|
55
|
+
// `publicInstance` => Fabric
|
|
56
|
+
// TODO: remove this check when syncing the new version of the renderer from React to React Native.
|
|
56
57
|
// `canonical` => Legacy Fabric
|
|
57
58
|
// `node` => Legacy renderer
|
|
58
|
-
const component =
|
|
59
|
-
(node.canonical && node.canonical.publicInstance) ??
|
|
60
|
-
// TODO: remove this check when syncing the new version of the renderer from React to React Native.
|
|
61
|
-
node.canonical ??
|
|
62
|
-
node;
|
|
59
|
+
const component = node.publicInstance ?? node.canonical ?? node;
|
|
63
60
|
if (!component || !component.measure) {
|
|
64
61
|
return;
|
|
65
62
|
}
|
|
@@ -295,7 +295,7 @@ let longPressDeactivationDistance = DEFAULT_LONG_PRESS_DEACTIVATION_DISTANCE;
|
|
|
295
295
|
*
|
|
296
296
|
* - When a press has activated (e.g. highlight an element)
|
|
297
297
|
* - When a press has deactivated (e.g. un-highlight an element)
|
|
298
|
-
* - When a press
|
|
298
|
+
* - When a press sould trigger an action, meaning it activated and deactivated
|
|
299
299
|
* while within the geometry of the element without the lock being stolen.
|
|
300
300
|
*
|
|
301
301
|
* A high quality interaction isn't as simple as you might think. There should
|
|
@@ -9,7 +9,6 @@
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import type {RootTag} from '../Types/RootTagTypes';
|
|
12
|
-
import type {Spec as FabricUIManagerSpec} from './FabricUIManager';
|
|
13
12
|
import type {Spec} from './NativeUIManager';
|
|
14
13
|
|
|
15
14
|
import {getFabricUIManager} from './FabricUIManager';
|
|
@@ -175,6 +174,33 @@ const UIManager = {
|
|
|
175
174
|
);
|
|
176
175
|
}
|
|
177
176
|
},
|
|
177
|
+
|
|
178
|
+
dispatchViewManagerCommand(
|
|
179
|
+
reactTag: number,
|
|
180
|
+
commandName: number | string,
|
|
181
|
+
commandArgs: any[],
|
|
182
|
+
) {
|
|
183
|
+
if (isFabricReactTag(reactTag)) {
|
|
184
|
+
const FabricUIManager = nullthrows(getFabricUIManager());
|
|
185
|
+
const shadowNode =
|
|
186
|
+
FabricUIManager.findShadowNodeByTag_DEPRECATED(reactTag);
|
|
187
|
+
if (shadowNode) {
|
|
188
|
+
// Transform the accidental CommandID into a CommandName which is the stringified number.
|
|
189
|
+
// The interop layer knows how to convert this number into the right method name.
|
|
190
|
+
// Stringify a string is a no-op, so it's safe.
|
|
191
|
+
commandName = `${commandName}`;
|
|
192
|
+
FabricUIManager.dispatchCommand(shadowNode, commandName, commandArgs);
|
|
193
|
+
}
|
|
194
|
+
} else {
|
|
195
|
+
UIManagerImpl.dispatchViewManagerCommand(
|
|
196
|
+
reactTag,
|
|
197
|
+
// We have some legacy components that are actually already using strings. ¯\_(ツ)_/¯
|
|
198
|
+
// $FlowFixMe[incompatible-call]
|
|
199
|
+
commandName,
|
|
200
|
+
commandArgs,
|
|
201
|
+
);
|
|
202
|
+
}
|
|
203
|
+
},
|
|
178
204
|
};
|
|
179
205
|
|
|
180
206
|
module.exports = UIManager;
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @noformat
|
|
8
8
|
* @flow strict
|
|
9
|
-
* @generated SignedSource<<
|
|
9
|
+
* @generated SignedSource<<265b342f0d29323bebb711ba0bc882ec>>
|
|
10
10
|
*
|
|
11
11
|
* This file was sync'd from the facebook/react repository.
|
|
12
12
|
*/
|
|
@@ -98,23 +98,7 @@ export type PartialViewConfig = $ReadOnly<{
|
|
|
98
98
|
validAttributes?: PartialAttributeConfiguration,
|
|
99
99
|
}>;
|
|
100
100
|
|
|
101
|
-
|
|
102
|
-
* Current usages should migrate to this definition
|
|
103
|
-
*/
|
|
104
|
-
export interface INativeMethods {
|
|
105
|
-
blur(): void;
|
|
106
|
-
focus(): void;
|
|
107
|
-
measure(callback: MeasureOnSuccessCallback): void;
|
|
108
|
-
measureInWindow(callback: MeasureInWindowOnSuccessCallback): void;
|
|
109
|
-
measureLayout(
|
|
110
|
-
relativeToNativeNode: number | ElementRef<HostComponent<mixed>>,
|
|
111
|
-
onSuccess: MeasureLayoutOnSuccessCallback,
|
|
112
|
-
onFail?: () => void,
|
|
113
|
-
): void;
|
|
114
|
-
setNativeProps(nativeProps: {...}): void;
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
export type NativeMethods = $ReadOnly<{|
|
|
101
|
+
export type NativeMethods = $ReadOnly<{
|
|
118
102
|
blur(): void,
|
|
119
103
|
focus(): void,
|
|
120
104
|
measure(callback: MeasureOnSuccessCallback): void,
|
|
@@ -125,11 +109,7 @@ export type NativeMethods = $ReadOnly<{|
|
|
|
125
109
|
onFail?: () => void,
|
|
126
110
|
): void,
|
|
127
111
|
setNativeProps(nativeProps: {...}): void,
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
// This validates that INativeMethods and NativeMethods stay in sync using Flow!
|
|
131
|
-
declare var ensureNativeMethodsAreSynced: NativeMethods;
|
|
132
|
-
(ensureNativeMethodsAreSynced: INativeMethods);
|
|
112
|
+
}>;
|
|
133
113
|
|
|
134
114
|
export type HostComponent<T> = AbstractComponent<T, $ReadOnly<NativeMethods>>;
|
|
135
115
|
|
|
@@ -215,10 +195,6 @@ export type ReactNativeType = {
|
|
|
215
195
|
...
|
|
216
196
|
};
|
|
217
197
|
|
|
218
|
-
export opaque type Node = mixed;
|
|
219
|
-
type InternalInstanceHandle = mixed;
|
|
220
|
-
type PublicInstance = mixed;
|
|
221
|
-
|
|
222
198
|
export type ReactFabricType = {
|
|
223
199
|
findHostInstance_DEPRECATED<TElementType: ElementType>(
|
|
224
200
|
componentOrHandle: ?(ElementRef<TElementType> | number),
|
|
@@ -242,12 +218,18 @@ export type ReactFabricType = {
|
|
|
242
218
|
concurrentRoot: ?boolean,
|
|
243
219
|
): ?ElementRef<ElementType>,
|
|
244
220
|
unmountComponentAtNode(containerTag: number): void,
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
221
|
+
...
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
export type ReactNativeEventTarget = {
|
|
225
|
+
node: {...},
|
|
226
|
+
canonical: {
|
|
227
|
+
_nativeTag: number,
|
|
228
|
+
viewConfig: ViewConfig,
|
|
229
|
+
currentProps: {...},
|
|
230
|
+
_internalInstanceHandle: {...},
|
|
231
|
+
...
|
|
232
|
+
},
|
|
251
233
|
...
|
|
252
234
|
};
|
|
253
235
|
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @flow strict
|
|
8
|
+
* @format
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
import type {TurboModule} from '../TurboModule/RCTExport';
|
|
12
|
+
|
|
13
|
+
import * as TurboModuleRegistry from '../TurboModule/TurboModuleRegistry';
|
|
14
|
+
|
|
15
|
+
export interface Spec extends TurboModule {
|
|
16
|
+
+loadBundle: (bundlePath: string) => Promise<void>;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export default (TurboModuleRegistry.get<Spec>('DevSplitBundleLoader'): ?Spec);
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
import type {ColorSchemeName} from './NativeAppearance';
|
|
14
14
|
|
|
15
15
|
import Appearance from './Appearance';
|
|
16
|
-
import {useSyncExternalStore} from '
|
|
16
|
+
import {useSyncExternalStore} from 'use-sync-external-store/shim';
|
|
17
17
|
|
|
18
18
|
export default function useColorScheme(): ?ColorSchemeName {
|
|
19
19
|
return useSyncExternalStore(
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
3
|
+
*
|
|
4
|
+
* This source code is licensed under the MIT license found in the
|
|
5
|
+
* LICENSE file in the root directory of this source tree.
|
|
6
|
+
*
|
|
7
|
+
* @format
|
|
8
|
+
* @flow strict-local
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
import type {ColorSchemeName} from './NativeAppearance';
|
|
14
|
+
|
|
15
|
+
import Appearance from './Appearance';
|
|
16
|
+
import {useSyncExternalStore} from 'react';
|
|
17
|
+
|
|
18
|
+
export default function useColorScheme(): ?ColorSchemeName {
|
|
19
|
+
return useSyncExternalStore(
|
|
20
|
+
callback => {
|
|
21
|
+
const appearanceSubscription = Appearance.addChangeListener(callback);
|
|
22
|
+
return () => appearanceSubscription.remove();
|
|
23
|
+
},
|
|
24
|
+
() => Appearance.getColorScheme(),
|
|
25
|
+
);
|
|
26
|
+
}
|
|
@@ -10,11 +10,11 @@
|
|
|
10
10
|
-->
|
|
11
11
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
12
12
|
<PropertyGroup>
|
|
13
|
-
<ReactNativeWindowsVersion>0.72.0-preview.
|
|
13
|
+
<ReactNativeWindowsVersion>0.72.0-preview.2</ReactNativeWindowsVersion>
|
|
14
14
|
<ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
|
|
15
15
|
<ReactNativeWindowsMinor>72</ReactNativeWindowsMinor>
|
|
16
16
|
<ReactNativeWindowsPatch>0</ReactNativeWindowsPatch>
|
|
17
17
|
<ReactNativeWindowsCanary>false</ReactNativeWindowsCanary>
|
|
18
|
-
<ReactNativeWindowsCommitId>
|
|
18
|
+
<ReactNativeWindowsCommitId>24fa0f13c7523c9ab499b0d8c9514cb7dc369ad3</ReactNativeWindowsCommitId>
|
|
19
19
|
</PropertyGroup>
|
|
20
20
|
</Project>
|
|
@@ -215,7 +215,7 @@ function CheckNode {
|
|
|
215
215
|
$nodeVersion = (Get-Command node -ErrorAction Stop).Version;
|
|
216
216
|
Write-Verbose "Node version found: $nodeVersion";
|
|
217
217
|
$v = $nodeVersion.Major;
|
|
218
|
-
return ($v -ge
|
|
218
|
+
return ($v -ge 16) -and (($v % 2) -eq 0);
|
|
219
219
|
} catch { Write-Debug $_ }
|
|
220
220
|
|
|
221
221
|
Write-Verbose "Node not found.";
|
|
@@ -360,7 +360,7 @@ $requiredFreeSpaceGB = 15;
|
|
|
360
360
|
$requirements = @(
|
|
361
361
|
@{
|
|
362
362
|
Id=[CheckId]::FreeSpace;
|
|
363
|
-
Name = "Free space on
|
|
363
|
+
Name = "Free space on current drive > $requiredFreeSpaceGB GB";
|
|
364
364
|
Tags = @('appDev');
|
|
365
365
|
Valid = { $drive.Free/1GB -gt $requiredFreeSpaceGB; }
|
|
366
366
|
HasVerboseOutput = $true;
|
|
@@ -412,7 +412,7 @@ $requirements = @(
|
|
|
412
412
|
},
|
|
413
413
|
@{
|
|
414
414
|
Id=[CheckId]::Node;
|
|
415
|
-
Name = 'Node.js (LTS, >=
|
|
415
|
+
Name = 'Node.js (LTS, >= 16.0)';
|
|
416
416
|
Tags = @('appDev');
|
|
417
417
|
Valid = { CheckNode; }
|
|
418
418
|
Install = { choco install -y nodejs-lts };
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
|
|
2
|
+
/*
|
|
3
|
+
* This file is auto-generated from a NativeModule spec file in js.
|
|
4
|
+
*
|
|
5
|
+
* This is a C++ Spec class that should be used with MakeTurboModuleProvider to register native modules
|
|
6
|
+
* in a way that also verifies at compile time that the native module matches the interface required
|
|
7
|
+
* by the TurboModule JS spec.
|
|
8
|
+
*/
|
|
9
|
+
#pragma once
|
|
10
|
+
|
|
11
|
+
#include "NativeModules.h"
|
|
12
|
+
#include <tuple>
|
|
13
|
+
|
|
14
|
+
namespace Microsoft::ReactNativeSpecs {
|
|
15
|
+
|
|
16
|
+
struct DevSplitBundleLoaderSpec : winrt::Microsoft::ReactNative::TurboModuleSpec {
|
|
17
|
+
static constexpr auto methods = std::tuple{
|
|
18
|
+
Method<void(std::string, Promise<void>) noexcept>{0, L"loadBundle"},
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
template <class TModule>
|
|
22
|
+
static constexpr void ValidateModule() noexcept {
|
|
23
|
+
constexpr auto methodCheckResults = CheckMethods<TModule, DevSplitBundleLoaderSpec>();
|
|
24
|
+
|
|
25
|
+
REACT_SHOW_METHOD_SPEC_ERRORS(
|
|
26
|
+
0,
|
|
27
|
+
"loadBundle",
|
|
28
|
+
" REACT_METHOD(loadBundle) void loadBundle(std::string bundlePath, ::React::ReactPromise<void> &&result) noexcept { /* implementation */ }\n"
|
|
29
|
+
" REACT_METHOD(loadBundle) static void loadBundle(std::string bundlePath, ::React::ReactPromise<void> &&result) noexcept { /* implementation */ }\n");
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
} // namespace Microsoft::ReactNativeSpecs
|
|
@@ -1095,6 +1095,14 @@ NativeDevLoadingViewCxxSpecJSI::NativeDevLoadingViewCxxSpecJSI(std::shared_ptr<C
|
|
|
1095
1095
|
methodMap_["showMessage"] = MethodMetadata {3, __hostFunction_NativeDevLoadingViewCxxSpecJSI_showMessage};
|
|
1096
1096
|
methodMap_["hide"] = MethodMetadata {0, __hostFunction_NativeDevLoadingViewCxxSpecJSI_hide};
|
|
1097
1097
|
}
|
|
1098
|
+
static jsi::Value __hostFunction_NativeDevSplitBundleLoaderCxxSpecJSI_loadBundle(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
1099
|
+
return static_cast<NativeDevSplitBundleLoaderCxxSpecJSI *>(&turboModule)->loadBundle(rt, args[0].asString(rt));
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1102
|
+
NativeDevSplitBundleLoaderCxxSpecJSI::NativeDevSplitBundleLoaderCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
|
|
1103
|
+
: TurboModule("DevSplitBundleLoader", jsInvoker) {
|
|
1104
|
+
methodMap_["loadBundle"] = MethodMetadata {1, __hostFunction_NativeDevSplitBundleLoaderCxxSpecJSI_loadBundle};
|
|
1105
|
+
}
|
|
1098
1106
|
static jsi::Value __hostFunction_NativePlatformConstantsAndroidCxxSpecJSI_getConstants(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
1099
1107
|
return static_cast<NativePlatformConstantsAndroidCxxSpecJSI *>(&turboModule)->getConstants(rt);
|
|
1100
1108
|
}
|
package/codegen/rnwcoreJSI.h
CHANGED
|
@@ -4076,6 +4076,50 @@ private:
|
|
|
4076
4076
|
};
|
|
4077
4077
|
|
|
4078
4078
|
|
|
4079
|
+
class JSI_EXPORT NativeDevSplitBundleLoaderCxxSpecJSI : public TurboModule {
|
|
4080
|
+
protected:
|
|
4081
|
+
NativeDevSplitBundleLoaderCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
|
|
4082
|
+
|
|
4083
|
+
public:
|
|
4084
|
+
virtual jsi::Value loadBundle(jsi::Runtime &rt, jsi::String bundlePath) = 0;
|
|
4085
|
+
|
|
4086
|
+
};
|
|
4087
|
+
|
|
4088
|
+
template <typename T>
|
|
4089
|
+
class JSI_EXPORT NativeDevSplitBundleLoaderCxxSpec : public TurboModule {
|
|
4090
|
+
public:
|
|
4091
|
+
jsi::Value get(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
|
|
4092
|
+
return delegate_.get(rt, propName);
|
|
4093
|
+
}
|
|
4094
|
+
|
|
4095
|
+
protected:
|
|
4096
|
+
NativeDevSplitBundleLoaderCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
|
|
4097
|
+
: TurboModule("DevSplitBundleLoader", jsInvoker),
|
|
4098
|
+
delegate_(static_cast<T*>(this), jsInvoker) {}
|
|
4099
|
+
|
|
4100
|
+
private:
|
|
4101
|
+
class Delegate : public NativeDevSplitBundleLoaderCxxSpecJSI {
|
|
4102
|
+
public:
|
|
4103
|
+
Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
|
|
4104
|
+
NativeDevSplitBundleLoaderCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {}
|
|
4105
|
+
|
|
4106
|
+
jsi::Value loadBundle(jsi::Runtime &rt, jsi::String bundlePath) override {
|
|
4107
|
+
static_assert(
|
|
4108
|
+
bridging::getParameterCount(&T::loadBundle) == 2,
|
|
4109
|
+
"Expected loadBundle(...) to have 2 parameters");
|
|
4110
|
+
|
|
4111
|
+
return bridging::callFromJs<jsi::Value>(
|
|
4112
|
+
rt, &T::loadBundle, jsInvoker_, instance_, std::move(bundlePath));
|
|
4113
|
+
}
|
|
4114
|
+
|
|
4115
|
+
private:
|
|
4116
|
+
T *instance_;
|
|
4117
|
+
};
|
|
4118
|
+
|
|
4119
|
+
Delegate delegate_;
|
|
4120
|
+
};
|
|
4121
|
+
|
|
4122
|
+
|
|
4079
4123
|
class JSI_EXPORT NativePlatformConstantsAndroidCxxSpecJSI : public TurboModule {
|
|
4080
4124
|
protected:
|
|
4081
4125
|
NativePlatformConstantsAndroidCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-windows",
|
|
3
|
-
"version": "0.72.0-preview.
|
|
3
|
+
"version": "0.72.0-preview.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -23,10 +23,10 @@
|
|
|
23
23
|
"dependencies": {
|
|
24
24
|
"@babel/runtime": "^7.0.0",
|
|
25
25
|
"@jest/create-cache-key-function": "^29.2.1",
|
|
26
|
-
"@react-native-community/cli": "11.
|
|
27
|
-
"@react-native-community/cli-platform-android": "11.
|
|
28
|
-
"@react-native-community/cli-platform-ios": "11.
|
|
29
|
-
"@react-native-windows/cli": "0.72.0-preview.
|
|
26
|
+
"@react-native-community/cli": "11.2.0",
|
|
27
|
+
"@react-native-community/cli-platform-android": "11.2.0",
|
|
28
|
+
"@react-native-community/cli-platform-ios": "11.2.0",
|
|
29
|
+
"@react-native-windows/cli": "0.72.0-preview.2",
|
|
30
30
|
"@react-native/assets": "1.0.0",
|
|
31
31
|
"@react-native/assets-registry": "^0.72.0",
|
|
32
32
|
"@react-native/codegen": "^0.72.3",
|
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
"jest-environment-node": "^29.2.1",
|
|
45
45
|
"jsc-android": "^250231.0.0",
|
|
46
46
|
"memoize-one": "^5.0.0",
|
|
47
|
-
"metro-runtime": "0.
|
|
48
|
-
"metro-source-map": "0.
|
|
47
|
+
"metro-runtime": "0.76.2",
|
|
48
|
+
"metro-source-map": "0.76.2",
|
|
49
49
|
"mkdirp": "^0.5.1",
|
|
50
50
|
"nullthrows": "^1.1.1",
|
|
51
51
|
"pretty-format": "^26.5.2",
|
|
@@ -62,24 +62,24 @@
|
|
|
62
62
|
"yargs": "^17.6.2"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
|
-
"@react-native-windows/codegen": "0.72.0-preview.
|
|
65
|
+
"@react-native-windows/codegen": "0.72.0-preview.2",
|
|
66
66
|
"@rnw-scripts/babel-react-native-config": "0.0.0",
|
|
67
67
|
"@rnw-scripts/eslint-config": "1.1.15",
|
|
68
68
|
"@rnw-scripts/jest-out-of-tree-snapshot-resolver": "^1.1.1",
|
|
69
69
|
"@rnw-scripts/just-task": "2.3.6",
|
|
70
70
|
"@rnw-scripts/metro-dev-config": "0.0.0",
|
|
71
71
|
"@rnx-kit/jest-preset": "^0.1.0",
|
|
72
|
-
"@types/node": "^
|
|
72
|
+
"@types/node": "^16.0.0",
|
|
73
73
|
"@types/react": "^18.0.18",
|
|
74
74
|
"eslint": "^8.19.0",
|
|
75
75
|
"eslint-plugin-prettier": "^4.2.1",
|
|
76
76
|
"flow-bin": "^0.202.0",
|
|
77
77
|
"jscodeshift": "^0.14.0",
|
|
78
78
|
"just-scripts": "^1.3.3",
|
|
79
|
-
"metro-config": "0.
|
|
79
|
+
"metro-config": "0.76.2",
|
|
80
80
|
"prettier": "^2.4.1",
|
|
81
81
|
"react": "18.2.0",
|
|
82
|
-
"react-native": "0.
|
|
82
|
+
"react-native": "0.72.0-rc.1",
|
|
83
83
|
"react-native-platform-override": "^1.9.4",
|
|
84
84
|
"react-refresh": "^0.4.0",
|
|
85
85
|
"typescript": "^4.9.5"
|
|
@@ -144,6 +144,6 @@
|
|
|
144
144
|
],
|
|
145
145
|
"promoteRelease": true,
|
|
146
146
|
"engines": {
|
|
147
|
-
"node": ">=
|
|
147
|
+
"node": ">= 16"
|
|
148
148
|
}
|
|
149
149
|
}
|