react-native-windows 0.0.0-canary.429 → 0.0.0-canary.433
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/.flowconfig +0 -1
- package/Directory.Build.props +6 -1
- package/Directory.Build.targets +6 -1
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +24 -0
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +24 -0
- package/Libraries/Components/AccessibilityInfo/NativeAccessibilityManager.js +4 -0
- package/Libraries/Core/ReactNativeVersion.js +1 -1
- package/Libraries/Renderer/implementations/ReactFabric-dev.fb.js +20 -8
- package/Libraries/Renderer/implementations/ReactFabric-prod.fb.js +17 -7
- package/Libraries/Renderer/implementations/ReactFabric-profiling.fb.js +18 -8
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.fb.js +20 -8
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.fb.js +17 -7
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.fb.js +18 -8
- package/Libraries/Renderer/shims/ReactNativeViewConfigRegistry.js +1 -3
- package/Libraries/Text/Text.js +1 -0
- package/Libraries/Text/Text.windows.js +0 -1
- package/Libraries/Text/TextNativeComponent.js +6 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/graphics/conversions.h +1 -0
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +0 -2
- package/PropertySheets/External/Microsoft.ReactNative.Common.props +6 -0
- package/PropertySheets/External/Microsoft.ReactNative.Common.targets +8 -2
- package/PropertySheets/Generated/PackageVersion.g.props +1 -1
- package/PropertySheets/JSEngine.props +2 -0
- package/Shared/WinRTWebSocketResource.cpp +29 -32
- package/Shared/WinRTWebSocketResource.h +0 -3
- package/codegen/NativeAccessibilityManagerSpec.g.h +12 -0
- package/package.json +4 -4
- package/rntypes/index.d.ts +4 -5
- package/Libraries/Text/TextNativeComponent.windows.js +0 -68
package/.flowconfig
CHANGED
|
@@ -30,7 +30,6 @@
|
|
|
30
30
|
<PROJECT_ROOT>/Libraries/NewAppScreen/components/DebugInstructions.js
|
|
31
31
|
<PROJECT_ROOT>/Libraries/NewAppScreen/components/ReloadInstructions.js
|
|
32
32
|
<PROJECT_ROOT>/Libraries/Pressability/Pressability.js
|
|
33
|
-
<PROJECT_ROOT>/Libraries/Text/TextNativeComponent.js
|
|
34
33
|
<PROJECT_ROOT>/Libraries/Types/CoreEventTypes.js
|
|
35
34
|
|
|
36
35
|
; Ignore react-native files in node_modules since they are copied into project root
|
package/Directory.Build.props
CHANGED
|
@@ -58,4 +58,9 @@
|
|
|
58
58
|
<FmtDir>$([MSBuild]::NormalizeDirectory($(FmtDir)))</FmtDir>
|
|
59
59
|
</PropertyGroup>
|
|
60
60
|
|
|
61
|
-
|
|
61
|
+
<PropertyGroup Label="NuGet" Condition="'$(MSBuildProjectExtension)' == '.vcxproj'">
|
|
62
|
+
<!--See https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets#restore-target-->
|
|
63
|
+
<RestoreUseStaticGraphEvaluation Condition="'$(BuildingInsideVisualStudio)' == 'true'">true</RestoreUseStaticGraphEvaluation>
|
|
64
|
+
</PropertyGroup>
|
|
65
|
+
|
|
66
|
+
</Project>
|
package/Directory.Build.targets
CHANGED
|
@@ -4,4 +4,9 @@
|
|
|
4
4
|
<!-- This import will noop when customer code is built. This import is here to help building the bits in the react-native-windows repository. -->
|
|
5
5
|
<Import Condition="Exists($([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../')))" Project="$([MSBuild]::GetPathOfFileAbove('Directory.Build.targets', '$(MSBuildThisFileDirectory)../'))" />
|
|
6
6
|
|
|
7
|
-
|
|
7
|
+
<!--Allow implicitly restoring PackageReference dependencies in C++ projects using the Visual Studio IDE.-->
|
|
8
|
+
<Target Name="BeforeResolveReferences" Condition="'$(BuildingInsideVisualStudio)' == 'true' AND '$(MSBuildProjectExtension)' == '.vcxproj'">
|
|
9
|
+
<MSBuild Projects="$(MSBuildProjectFile)" Targets="Restore" />
|
|
10
|
+
</Target>
|
|
11
|
+
|
|
12
|
+
</Project>
|
|
@@ -341,6 +341,30 @@ const AccessibilityInfo = {
|
|
|
341
341
|
}
|
|
342
342
|
},
|
|
343
343
|
|
|
344
|
+
/**
|
|
345
|
+
* Post a string to be announced by the screen reader.
|
|
346
|
+
* - `announcement`: The string announced by the screen reader.
|
|
347
|
+
* - `options`: An object that configures the reading options.
|
|
348
|
+
* - `queue`: The announcement will be queued behind existing announcements. iOS only.
|
|
349
|
+
*/
|
|
350
|
+
announceForAccessibilityWithOptions(
|
|
351
|
+
announcement: string,
|
|
352
|
+
options: {queue?: boolean},
|
|
353
|
+
): void {
|
|
354
|
+
if (Platform.OS === 'android') {
|
|
355
|
+
NativeAccessibilityInfoAndroid?.announceForAccessibility(announcement);
|
|
356
|
+
} else {
|
|
357
|
+
if (NativeAccessibilityManagerIOS?.announceForAccessibilityWithOptions) {
|
|
358
|
+
NativeAccessibilityManagerIOS?.announceForAccessibilityWithOptions(
|
|
359
|
+
announcement,
|
|
360
|
+
options,
|
|
361
|
+
);
|
|
362
|
+
} else {
|
|
363
|
+
NativeAccessibilityManagerIOS?.announceForAccessibility(announcement);
|
|
364
|
+
}
|
|
365
|
+
}
|
|
366
|
+
},
|
|
367
|
+
|
|
344
368
|
/**
|
|
345
369
|
* @deprecated Use `remove` on the EventSubscription from `addEventListener`.
|
|
346
370
|
*/
|
|
@@ -347,6 +347,30 @@ const AccessibilityInfo = {
|
|
|
347
347
|
}
|
|
348
348
|
},
|
|
349
349
|
|
|
350
|
+
/**
|
|
351
|
+
* Post a string to be announced by the screen reader.
|
|
352
|
+
* - `announcement`: The string announced by the screen reader.
|
|
353
|
+
* - `options`: An object that configures the reading options.
|
|
354
|
+
* - `queue`: The announcement will be queued behind existing announcements. iOS only.
|
|
355
|
+
*/
|
|
356
|
+
announceForAccessibilityWithOptions(
|
|
357
|
+
announcement: string,
|
|
358
|
+
options: {queue?: boolean},
|
|
359
|
+
): void {
|
|
360
|
+
if (Platform.OS === 'android' || Platform.OS === 'windows') {
|
|
361
|
+
NativeAccessibilityInfo?.announceForAccessibility(announcement);
|
|
362
|
+
} else {
|
|
363
|
+
if (NativeAccessibilityManagerIOS?.announceForAccessibilityWithOptions) {
|
|
364
|
+
NativeAccessibilityManagerIOS?.announceForAccessibilityWithOptions(
|
|
365
|
+
announcement,
|
|
366
|
+
options,
|
|
367
|
+
);
|
|
368
|
+
} else {
|
|
369
|
+
NativeAccessibilityManagerIOS?.announceForAccessibility(announcement);
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
},
|
|
373
|
+
|
|
350
374
|
/**
|
|
351
375
|
* @deprecated Use `remove` on the EventSubscription from `addEventListener`.
|
|
352
376
|
*/
|
|
@@ -52,6 +52,10 @@ export interface Spec extends TurboModule {
|
|
|
52
52
|
|}) => void;
|
|
53
53
|
+setAccessibilityFocus: (reactTag: number) => void;
|
|
54
54
|
+announceForAccessibility: (announcement: string) => void;
|
|
55
|
+
+announceForAccessibilityWithOptions?: (
|
|
56
|
+
announcement: string,
|
|
57
|
+
options: {queue?: boolean},
|
|
58
|
+
) => void;
|
|
55
59
|
}
|
|
56
60
|
|
|
57
61
|
export default (TurboModuleRegistry.get<Spec>('AccessibilityManager'): ?Spec);
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @noflow
|
|
8
8
|
* @nolint
|
|
9
9
|
* @preventMunge
|
|
10
|
-
* @generated SignedSource<<
|
|
10
|
+
* @generated SignedSource<<c63c5718d1b40bee38ff92020247d874>>
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
'use strict';
|
|
@@ -6008,7 +6008,7 @@ function flushSyncCallbacks() {
|
|
|
6008
6008
|
return null;
|
|
6009
6009
|
}
|
|
6010
6010
|
|
|
6011
|
-
var ReactVersion = "18.0.0-
|
|
6011
|
+
var ReactVersion = "18.0.0-c1220ebdd-20211123";
|
|
6012
6012
|
|
|
6013
6013
|
var SCHEDULING_PROFILER_VERSION = 1;
|
|
6014
6014
|
|
|
@@ -9441,7 +9441,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
9441
9441
|
}
|
|
9442
9442
|
|
|
9443
9443
|
function createChild(returnFiber, newChild, lanes) {
|
|
9444
|
-
if (
|
|
9444
|
+
if (
|
|
9445
|
+
(typeof newChild === "string" && newChild !== "") ||
|
|
9446
|
+
typeof newChild === "number"
|
|
9447
|
+
) {
|
|
9445
9448
|
// Text nodes don't have keys. If the previous node is implicitly keyed
|
|
9446
9449
|
// we can continue to replace it without aborting even if it is not a text
|
|
9447
9450
|
// node.
|
|
@@ -9504,7 +9507,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
9504
9507
|
// Update the fiber if the keys match, otherwise return null.
|
|
9505
9508
|
var key = oldFiber !== null ? oldFiber.key : null;
|
|
9506
9509
|
|
|
9507
|
-
if (
|
|
9510
|
+
if (
|
|
9511
|
+
(typeof newChild === "string" && newChild !== "") ||
|
|
9512
|
+
typeof newChild === "number"
|
|
9513
|
+
) {
|
|
9508
9514
|
// Text nodes don't have keys. If the previous node is implicitly keyed
|
|
9509
9515
|
// we can continue to replace it without aborting even if it is not a text
|
|
9510
9516
|
// node.
|
|
@@ -9561,7 +9567,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
9561
9567
|
newChild,
|
|
9562
9568
|
lanes
|
|
9563
9569
|
) {
|
|
9564
|
-
if (
|
|
9570
|
+
if (
|
|
9571
|
+
(typeof newChild === "string" && newChild !== "") ||
|
|
9572
|
+
typeof newChild === "number"
|
|
9573
|
+
) {
|
|
9565
9574
|
// Text nodes don't have keys, so we neither have to check the old nor
|
|
9566
9575
|
// new node for the key. If both are text nodes, they match.
|
|
9567
9576
|
var matchedFiber = existingChildren.get(newIdx) || null;
|
|
@@ -10246,7 +10255,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
10246
10255
|
throwOnInvalidObjectType(returnFiber, newChild);
|
|
10247
10256
|
}
|
|
10248
10257
|
|
|
10249
|
-
if (
|
|
10258
|
+
if (
|
|
10259
|
+
(typeof newChild === "string" && newChild !== "") ||
|
|
10260
|
+
typeof newChild === "number"
|
|
10261
|
+
) {
|
|
10250
10262
|
return placeSingleChild(
|
|
10251
10263
|
reconcileSingleTextNode(
|
|
10252
10264
|
returnFiber,
|
|
@@ -14562,7 +14574,7 @@ function completeWork(current, workInProgress, renderLanes) {
|
|
|
14562
14574
|
// Schedule an effect to clear this container at the start of the next commit.
|
|
14563
14575
|
// This handles the case of React rendering into a container with previous children.
|
|
14564
14576
|
// It's also safe to do for updates too, because current.child would only be null
|
|
14565
|
-
// if the previous render was null (so the
|
|
14577
|
+
// if the previous render was null (so the container would already be empty).
|
|
14566
14578
|
workInProgress.flags |= Snapshot;
|
|
14567
14579
|
}
|
|
14568
14580
|
}
|
|
@@ -20817,7 +20829,7 @@ function finishConcurrentRender(root, exitStatus, lanes) {
|
|
|
20817
20829
|
|
|
20818
20830
|
function isRenderConsistentWithExternalStores(finishedWork) {
|
|
20819
20831
|
// Search the rendered tree for external store reads, and check whether the
|
|
20820
|
-
// stores were mutated in a concurrent event. Intentionally using
|
|
20832
|
+
// stores were mutated in a concurrent event. Intentionally using an iterative
|
|
20821
20833
|
// loop instead of recursion so we can exit early.
|
|
20822
20834
|
var node = finishedWork;
|
|
20823
20835
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @noflow
|
|
8
8
|
* @nolint
|
|
9
9
|
* @preventMunge
|
|
10
|
-
* @generated SignedSource<<
|
|
10
|
+
* @generated SignedSource<<d2675ef49da99531a7fa8940f853bd5f>>
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
"use strict";
|
|
@@ -2840,7 +2840,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
2840
2840
|
return current;
|
|
2841
2841
|
}
|
|
2842
2842
|
function createChild(returnFiber, newChild, lanes) {
|
|
2843
|
-
if (
|
|
2843
|
+
if (
|
|
2844
|
+
("string" === typeof newChild && "" !== newChild) ||
|
|
2845
|
+
"number" === typeof newChild
|
|
2846
|
+
)
|
|
2844
2847
|
return (
|
|
2845
2848
|
(newChild = createFiberFromText(
|
|
2846
2849
|
"" + newChild,
|
|
@@ -2894,7 +2897,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
2894
2897
|
}
|
|
2895
2898
|
function updateSlot(returnFiber, oldFiber, newChild, lanes) {
|
|
2896
2899
|
var key = null !== oldFiber ? oldFiber.key : null;
|
|
2897
|
-
if (
|
|
2900
|
+
if (
|
|
2901
|
+
("string" === typeof newChild && "" !== newChild) ||
|
|
2902
|
+
"number" === typeof newChild
|
|
2903
|
+
)
|
|
2898
2904
|
return null !== key
|
|
2899
2905
|
? null
|
|
2900
2906
|
: updateTextNode(returnFiber, oldFiber, "" + newChild, lanes);
|
|
@@ -2924,7 +2930,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
2924
2930
|
newChild,
|
|
2925
2931
|
lanes
|
|
2926
2932
|
) {
|
|
2927
|
-
if (
|
|
2933
|
+
if (
|
|
2934
|
+
("string" === typeof newChild && "" !== newChild) ||
|
|
2935
|
+
"number" === typeof newChild
|
|
2936
|
+
)
|
|
2928
2937
|
return (
|
|
2929
2938
|
(existingChildren = existingChildren.get(newIdx) || null),
|
|
2930
2939
|
updateTextNode(returnFiber, existingChildren, "" + newChild, lanes)
|
|
@@ -3250,7 +3259,8 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
3250
3259
|
);
|
|
3251
3260
|
throwOnInvalidObjectType(returnFiber, newChild);
|
|
3252
3261
|
}
|
|
3253
|
-
return "string" === typeof newChild
|
|
3262
|
+
return ("string" === typeof newChild && "" !== newChild) ||
|
|
3263
|
+
"number" === typeof newChild
|
|
3254
3264
|
? ((newChild = "" + newChild),
|
|
3255
3265
|
null !== currentFirstChild && 6 === currentFirstChild.tag
|
|
3256
3266
|
? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),
|
|
@@ -8166,7 +8176,7 @@ var roots = new Map(),
|
|
|
8166
8176
|
devToolsConfig$jscomp$inline_925 = {
|
|
8167
8177
|
findFiberByHostInstance: getInstanceFromInstance,
|
|
8168
8178
|
bundleType: 0,
|
|
8169
|
-
version: "18.0.0-
|
|
8179
|
+
version: "18.0.0-c1220ebdd-20211123",
|
|
8170
8180
|
rendererPackageName: "react-native-renderer",
|
|
8171
8181
|
rendererConfig: {
|
|
8172
8182
|
getInspectorDataForViewTag: function() {
|
|
@@ -8208,7 +8218,7 @@ var internals$jscomp$inline_1179 = {
|
|
|
8208
8218
|
scheduleRoot: null,
|
|
8209
8219
|
setRefreshHandler: null,
|
|
8210
8220
|
getCurrentFiber: null,
|
|
8211
|
-
reconcilerVersion: "18.0.0-
|
|
8221
|
+
reconcilerVersion: "18.0.0-c1220ebdd-20211123"
|
|
8212
8222
|
};
|
|
8213
8223
|
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
|
|
8214
8224
|
var hook$jscomp$inline_1180 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @noflow
|
|
8
8
|
* @nolint
|
|
9
9
|
* @preventMunge
|
|
10
|
-
* @generated SignedSource<<
|
|
10
|
+
* @generated SignedSource<<d9e820a361c20b62bc9a8c1f8ab34868>>
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
|
|
@@ -3025,7 +3025,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
3025
3025
|
return current;
|
|
3026
3026
|
}
|
|
3027
3027
|
function createChild(returnFiber, newChild, lanes) {
|
|
3028
|
-
if (
|
|
3028
|
+
if (
|
|
3029
|
+
("string" === typeof newChild && "" !== newChild) ||
|
|
3030
|
+
"number" === typeof newChild
|
|
3031
|
+
)
|
|
3029
3032
|
return (
|
|
3030
3033
|
(newChild = createFiberFromText(
|
|
3031
3034
|
"" + newChild,
|
|
@@ -3079,7 +3082,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
3079
3082
|
}
|
|
3080
3083
|
function updateSlot(returnFiber, oldFiber, newChild, lanes) {
|
|
3081
3084
|
var key = null !== oldFiber ? oldFiber.key : null;
|
|
3082
|
-
if (
|
|
3085
|
+
if (
|
|
3086
|
+
("string" === typeof newChild && "" !== newChild) ||
|
|
3087
|
+
"number" === typeof newChild
|
|
3088
|
+
)
|
|
3083
3089
|
return null !== key
|
|
3084
3090
|
? null
|
|
3085
3091
|
: updateTextNode(returnFiber, oldFiber, "" + newChild, lanes);
|
|
@@ -3109,7 +3115,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
3109
3115
|
newChild,
|
|
3110
3116
|
lanes
|
|
3111
3117
|
) {
|
|
3112
|
-
if (
|
|
3118
|
+
if (
|
|
3119
|
+
("string" === typeof newChild && "" !== newChild) ||
|
|
3120
|
+
"number" === typeof newChild
|
|
3121
|
+
)
|
|
3113
3122
|
return (
|
|
3114
3123
|
(existingChildren = existingChildren.get(newIdx) || null),
|
|
3115
3124
|
updateTextNode(returnFiber, existingChildren, "" + newChild, lanes)
|
|
@@ -3435,7 +3444,8 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
3435
3444
|
);
|
|
3436
3445
|
throwOnInvalidObjectType(returnFiber, newChild);
|
|
3437
3446
|
}
|
|
3438
|
-
return "string" === typeof newChild
|
|
3447
|
+
return ("string" === typeof newChild && "" !== newChild) ||
|
|
3448
|
+
"number" === typeof newChild
|
|
3439
3449
|
? ((newChild = "" + newChild),
|
|
3440
3450
|
null !== currentFirstChild && 6 === currentFirstChild.tag
|
|
3441
3451
|
? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),
|
|
@@ -7612,7 +7622,7 @@ function commitRootImpl(root, renderPriorityLevel) {
|
|
|
7612
7622
|
lanes = root.finishedLanes;
|
|
7613
7623
|
supportsUserTimingV3 &&
|
|
7614
7624
|
(markAndClear("--commit-start-" + lanes),
|
|
7615
|
-
markAndClear("--react-version-18.0.0-
|
|
7625
|
+
markAndClear("--react-version-18.0.0-c1220ebdd-20211123"),
|
|
7616
7626
|
markAndClear("--profiler-version-1"),
|
|
7617
7627
|
getLaneLabels(),
|
|
7618
7628
|
markAndClear("--react-lane-labels-" + laneLabels.join(",")),
|
|
@@ -8868,7 +8878,7 @@ var roots = new Map(),
|
|
|
8868
8878
|
devToolsConfig$jscomp$inline_1020 = {
|
|
8869
8879
|
findFiberByHostInstance: getInstanceFromInstance,
|
|
8870
8880
|
bundleType: 0,
|
|
8871
|
-
version: "18.0.0-
|
|
8881
|
+
version: "18.0.0-c1220ebdd-20211123",
|
|
8872
8882
|
rendererPackageName: "react-native-renderer",
|
|
8873
8883
|
rendererConfig: {
|
|
8874
8884
|
getInspectorDataForViewTag: function() {
|
|
@@ -8910,7 +8920,7 @@ var internals$jscomp$inline_1308 = {
|
|
|
8910
8920
|
scheduleRoot: null,
|
|
8911
8921
|
setRefreshHandler: null,
|
|
8912
8922
|
getCurrentFiber: null,
|
|
8913
|
-
reconcilerVersion: "18.0.0-
|
|
8923
|
+
reconcilerVersion: "18.0.0-c1220ebdd-20211123"
|
|
8914
8924
|
};
|
|
8915
8925
|
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
|
|
8916
8926
|
var hook$jscomp$inline_1309 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @noflow
|
|
8
8
|
* @nolint
|
|
9
9
|
* @preventMunge
|
|
10
|
-
* @generated SignedSource<<
|
|
10
|
+
* @generated SignedSource<<8b128574fdea8d0a11f1cf1c1aefe59b>>
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
'use strict';
|
|
@@ -6241,7 +6241,7 @@ function flushSyncCallbacks() {
|
|
|
6241
6241
|
return null;
|
|
6242
6242
|
}
|
|
6243
6243
|
|
|
6244
|
-
var ReactVersion = "18.0.0-
|
|
6244
|
+
var ReactVersion = "18.0.0-c1220ebdd-20211123";
|
|
6245
6245
|
|
|
6246
6246
|
var SCHEDULING_PROFILER_VERSION = 1;
|
|
6247
6247
|
|
|
@@ -9674,7 +9674,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
9674
9674
|
}
|
|
9675
9675
|
|
|
9676
9676
|
function createChild(returnFiber, newChild, lanes) {
|
|
9677
|
-
if (
|
|
9677
|
+
if (
|
|
9678
|
+
(typeof newChild === "string" && newChild !== "") ||
|
|
9679
|
+
typeof newChild === "number"
|
|
9680
|
+
) {
|
|
9678
9681
|
// Text nodes don't have keys. If the previous node is implicitly keyed
|
|
9679
9682
|
// we can continue to replace it without aborting even if it is not a text
|
|
9680
9683
|
// node.
|
|
@@ -9737,7 +9740,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
9737
9740
|
// Update the fiber if the keys match, otherwise return null.
|
|
9738
9741
|
var key = oldFiber !== null ? oldFiber.key : null;
|
|
9739
9742
|
|
|
9740
|
-
if (
|
|
9743
|
+
if (
|
|
9744
|
+
(typeof newChild === "string" && newChild !== "") ||
|
|
9745
|
+
typeof newChild === "number"
|
|
9746
|
+
) {
|
|
9741
9747
|
// Text nodes don't have keys. If the previous node is implicitly keyed
|
|
9742
9748
|
// we can continue to replace it without aborting even if it is not a text
|
|
9743
9749
|
// node.
|
|
@@ -9794,7 +9800,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
9794
9800
|
newChild,
|
|
9795
9801
|
lanes
|
|
9796
9802
|
) {
|
|
9797
|
-
if (
|
|
9803
|
+
if (
|
|
9804
|
+
(typeof newChild === "string" && newChild !== "") ||
|
|
9805
|
+
typeof newChild === "number"
|
|
9806
|
+
) {
|
|
9798
9807
|
// Text nodes don't have keys, so we neither have to check the old nor
|
|
9799
9808
|
// new node for the key. If both are text nodes, they match.
|
|
9800
9809
|
var matchedFiber = existingChildren.get(newIdx) || null;
|
|
@@ -10479,7 +10488,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
10479
10488
|
throwOnInvalidObjectType(returnFiber, newChild);
|
|
10480
10489
|
}
|
|
10481
10490
|
|
|
10482
|
-
if (
|
|
10491
|
+
if (
|
|
10492
|
+
(typeof newChild === "string" && newChild !== "") ||
|
|
10493
|
+
typeof newChild === "number"
|
|
10494
|
+
) {
|
|
10483
10495
|
return placeSingleChild(
|
|
10484
10496
|
reconcileSingleTextNode(
|
|
10485
10497
|
returnFiber,
|
|
@@ -14592,7 +14604,7 @@ function completeWork(current, workInProgress, renderLanes) {
|
|
|
14592
14604
|
// Schedule an effect to clear this container at the start of the next commit.
|
|
14593
14605
|
// This handles the case of React rendering into a container with previous children.
|
|
14594
14606
|
// It's also safe to do for updates too, because current.child would only be null
|
|
14595
|
-
// if the previous render was null (so the
|
|
14607
|
+
// if the previous render was null (so the container would already be empty).
|
|
14596
14608
|
workInProgress.flags |= Snapshot;
|
|
14597
14609
|
}
|
|
14598
14610
|
}
|
|
@@ -21232,7 +21244,7 @@ function finishConcurrentRender(root, exitStatus, lanes) {
|
|
|
21232
21244
|
|
|
21233
21245
|
function isRenderConsistentWithExternalStores(finishedWork) {
|
|
21234
21246
|
// Search the rendered tree for external store reads, and check whether the
|
|
21235
|
-
// stores were mutated in a concurrent event. Intentionally using
|
|
21247
|
+
// stores were mutated in a concurrent event. Intentionally using an iterative
|
|
21236
21248
|
// loop instead of recursion so we can exit early.
|
|
21237
21249
|
var node = finishedWork;
|
|
21238
21250
|
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @noflow
|
|
8
8
|
* @nolint
|
|
9
9
|
* @preventMunge
|
|
10
|
-
* @generated SignedSource<<
|
|
10
|
+
* @generated SignedSource<<c587a7b3e41dfa079412f1481033cff7>>
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
"use strict";
|
|
@@ -2811,7 +2811,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
2811
2811
|
return current;
|
|
2812
2812
|
}
|
|
2813
2813
|
function createChild(returnFiber, newChild, lanes) {
|
|
2814
|
-
if (
|
|
2814
|
+
if (
|
|
2815
|
+
("string" === typeof newChild && "" !== newChild) ||
|
|
2816
|
+
"number" === typeof newChild
|
|
2817
|
+
)
|
|
2815
2818
|
return (
|
|
2816
2819
|
(newChild = createFiberFromText(
|
|
2817
2820
|
"" + newChild,
|
|
@@ -2865,7 +2868,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
2865
2868
|
}
|
|
2866
2869
|
function updateSlot(returnFiber, oldFiber, newChild, lanes) {
|
|
2867
2870
|
var key = null !== oldFiber ? oldFiber.key : null;
|
|
2868
|
-
if (
|
|
2871
|
+
if (
|
|
2872
|
+
("string" === typeof newChild && "" !== newChild) ||
|
|
2873
|
+
"number" === typeof newChild
|
|
2874
|
+
)
|
|
2869
2875
|
return null !== key
|
|
2870
2876
|
? null
|
|
2871
2877
|
: updateTextNode(returnFiber, oldFiber, "" + newChild, lanes);
|
|
@@ -2895,7 +2901,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
2895
2901
|
newChild,
|
|
2896
2902
|
lanes
|
|
2897
2903
|
) {
|
|
2898
|
-
if (
|
|
2904
|
+
if (
|
|
2905
|
+
("string" === typeof newChild && "" !== newChild) ||
|
|
2906
|
+
"number" === typeof newChild
|
|
2907
|
+
)
|
|
2899
2908
|
return (
|
|
2900
2909
|
(existingChildren = existingChildren.get(newIdx) || null),
|
|
2901
2910
|
updateTextNode(returnFiber, existingChildren, "" + newChild, lanes)
|
|
@@ -3221,7 +3230,8 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
3221
3230
|
);
|
|
3222
3231
|
throwOnInvalidObjectType(returnFiber, newChild);
|
|
3223
3232
|
}
|
|
3224
|
-
return "string" === typeof newChild
|
|
3233
|
+
return ("string" === typeof newChild && "" !== newChild) ||
|
|
3234
|
+
"number" === typeof newChild
|
|
3225
3235
|
? ((newChild = "" + newChild),
|
|
3226
3236
|
null !== currentFirstChild && 6 === currentFirstChild.tag
|
|
3227
3237
|
? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),
|
|
@@ -8253,7 +8263,7 @@ var roots = new Map(),
|
|
|
8253
8263
|
devToolsConfig$jscomp$inline_966 = {
|
|
8254
8264
|
findFiberByHostInstance: getInstanceFromTag,
|
|
8255
8265
|
bundleType: 0,
|
|
8256
|
-
version: "18.0.0-
|
|
8266
|
+
version: "18.0.0-c1220ebdd-20211123",
|
|
8257
8267
|
rendererPackageName: "react-native-renderer",
|
|
8258
8268
|
rendererConfig: {
|
|
8259
8269
|
getInspectorDataForViewTag: function() {
|
|
@@ -8295,7 +8305,7 @@ var internals$jscomp$inline_1230 = {
|
|
|
8295
8305
|
scheduleRoot: null,
|
|
8296
8306
|
setRefreshHandler: null,
|
|
8297
8307
|
getCurrentFiber: null,
|
|
8298
|
-
reconcilerVersion: "18.0.0-
|
|
8308
|
+
reconcilerVersion: "18.0.0-c1220ebdd-20211123"
|
|
8299
8309
|
};
|
|
8300
8310
|
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
|
|
8301
8311
|
var hook$jscomp$inline_1231 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
* @noflow
|
|
8
8
|
* @nolint
|
|
9
9
|
* @preventMunge
|
|
10
|
-
* @generated SignedSource<<
|
|
10
|
+
* @generated SignedSource<<d52f24e9901f9340c97ef19e63d99705>>
|
|
11
11
|
*/
|
|
12
12
|
|
|
13
13
|
|
|
@@ -2996,7 +2996,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
2996
2996
|
return current;
|
|
2997
2997
|
}
|
|
2998
2998
|
function createChild(returnFiber, newChild, lanes) {
|
|
2999
|
-
if (
|
|
2999
|
+
if (
|
|
3000
|
+
("string" === typeof newChild && "" !== newChild) ||
|
|
3001
|
+
"number" === typeof newChild
|
|
3002
|
+
)
|
|
3000
3003
|
return (
|
|
3001
3004
|
(newChild = createFiberFromText(
|
|
3002
3005
|
"" + newChild,
|
|
@@ -3050,7 +3053,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
3050
3053
|
}
|
|
3051
3054
|
function updateSlot(returnFiber, oldFiber, newChild, lanes) {
|
|
3052
3055
|
var key = null !== oldFiber ? oldFiber.key : null;
|
|
3053
|
-
if (
|
|
3056
|
+
if (
|
|
3057
|
+
("string" === typeof newChild && "" !== newChild) ||
|
|
3058
|
+
"number" === typeof newChild
|
|
3059
|
+
)
|
|
3054
3060
|
return null !== key
|
|
3055
3061
|
? null
|
|
3056
3062
|
: updateTextNode(returnFiber, oldFiber, "" + newChild, lanes);
|
|
@@ -3080,7 +3086,10 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
3080
3086
|
newChild,
|
|
3081
3087
|
lanes
|
|
3082
3088
|
) {
|
|
3083
|
-
if (
|
|
3089
|
+
if (
|
|
3090
|
+
("string" === typeof newChild && "" !== newChild) ||
|
|
3091
|
+
"number" === typeof newChild
|
|
3092
|
+
)
|
|
3084
3093
|
return (
|
|
3085
3094
|
(existingChildren = existingChildren.get(newIdx) || null),
|
|
3086
3095
|
updateTextNode(returnFiber, existingChildren, "" + newChild, lanes)
|
|
@@ -3406,7 +3415,8 @@ function ChildReconciler(shouldTrackSideEffects) {
|
|
|
3406
3415
|
);
|
|
3407
3416
|
throwOnInvalidObjectType(returnFiber, newChild);
|
|
3408
3417
|
}
|
|
3409
|
-
return "string" === typeof newChild
|
|
3418
|
+
return ("string" === typeof newChild && "" !== newChild) ||
|
|
3419
|
+
"number" === typeof newChild
|
|
3410
3420
|
? ((newChild = "" + newChild),
|
|
3411
3421
|
null !== currentFirstChild && 6 === currentFirstChild.tag
|
|
3412
3422
|
? (deleteRemainingChildren(returnFiber, currentFirstChild.sibling),
|
|
@@ -7691,7 +7701,7 @@ function commitRootImpl(root, renderPriorityLevel) {
|
|
|
7691
7701
|
lanes = root.finishedLanes;
|
|
7692
7702
|
supportsUserTimingV3 &&
|
|
7693
7703
|
(markAndClear("--commit-start-" + lanes),
|
|
7694
|
-
markAndClear("--react-version-18.0.0-
|
|
7704
|
+
markAndClear("--react-version-18.0.0-c1220ebdd-20211123"),
|
|
7695
7705
|
markAndClear("--profiler-version-1"),
|
|
7696
7706
|
getLaneLabels(),
|
|
7697
7707
|
markAndClear("--react-lane-labels-" + laneLabels.join(",")),
|
|
@@ -8947,7 +8957,7 @@ var roots = new Map(),
|
|
|
8947
8957
|
devToolsConfig$jscomp$inline_1061 = {
|
|
8948
8958
|
findFiberByHostInstance: getInstanceFromTag,
|
|
8949
8959
|
bundleType: 0,
|
|
8950
|
-
version: "18.0.0-
|
|
8960
|
+
version: "18.0.0-c1220ebdd-20211123",
|
|
8951
8961
|
rendererPackageName: "react-native-renderer",
|
|
8952
8962
|
rendererConfig: {
|
|
8953
8963
|
getInspectorDataForViewTag: function() {
|
|
@@ -8989,7 +8999,7 @@ var internals$jscomp$inline_1359 = {
|
|
|
8989
8999
|
scheduleRoot: null,
|
|
8990
9000
|
setRefreshHandler: null,
|
|
8991
9001
|
getCurrentFiber: null,
|
|
8992
|
-
reconcilerVersion: "18.0.0-
|
|
9002
|
+
reconcilerVersion: "18.0.0-c1220ebdd-20211123"
|
|
8993
9003
|
};
|
|
8994
9004
|
if ("undefined" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__) {
|
|
8995
9005
|
var hook$jscomp$inline_1360 = __REACT_DEVTOOLS_GLOBAL_HOOK__;
|
|
@@ -6,13 +6,11 @@
|
|
|
6
6
|
*
|
|
7
7
|
* @noformat
|
|
8
8
|
* @flow strict-local
|
|
9
|
-
* @generated SignedSource<<
|
|
9
|
+
* @generated SignedSource<<a81ed33269e71024fedad145e843fab0>>
|
|
10
10
|
*
|
|
11
11
|
* This file was sync'd from the facebook/react repository.
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
|
-
/* eslint-disable react-internal/invariant-args */
|
|
15
|
-
|
|
16
14
|
'use strict';
|
|
17
15
|
|
|
18
16
|
import {type ViewConfig} from './ReactNativeTypes';
|
package/Libraries/Text/Text.js
CHANGED
|
@@ -19,6 +19,10 @@ type NativeTextProps = $ReadOnly<{
|
|
|
19
19
|
...TextProps,
|
|
20
20
|
isHighlighted?: ?boolean,
|
|
21
21
|
selectionColor?: ?ProcessedColorValue,
|
|
22
|
+
// This is only needed for platforms that optimize text hit testing, e.g.,
|
|
23
|
+
// react-native-windows. It can be used to only hit test virtual text spans
|
|
24
|
+
// that have pressable events attached to them.
|
|
25
|
+
isPressable?: ?boolean,
|
|
22
26
|
}>;
|
|
23
27
|
|
|
24
28
|
export const NativeText: HostComponent<NativeTextProps> =
|
|
@@ -26,6 +30,7 @@ export const NativeText: HostComponent<NativeTextProps> =
|
|
|
26
30
|
validAttributes: {
|
|
27
31
|
...ReactNativeViewAttributes.UIView,
|
|
28
32
|
isHighlighted: true,
|
|
33
|
+
isPressable: true,
|
|
29
34
|
numberOfLines: true,
|
|
30
35
|
ellipsizeMode: true,
|
|
31
36
|
allowFontScaling: true,
|
|
@@ -59,6 +64,7 @@ export const NativeVirtualText: HostComponent<NativeTextProps> =
|
|
|
59
64
|
validAttributes: {
|
|
60
65
|
...ReactNativeViewAttributes.UIView,
|
|
61
66
|
isHighlighted: true,
|
|
67
|
+
isPressable: true,
|
|
62
68
|
maxFontSizeMultiplier: true,
|
|
63
69
|
},
|
|
64
70
|
uiViewClassName: 'RCTVirtualText',
|
|
@@ -150,6 +150,7 @@ inline void fromRawValue(const PropsParserContext &context, const RawValue &valu
|
|
|
150
150
|
if (value.hasType<Float>()) {
|
|
151
151
|
auto number = (Float)value;
|
|
152
152
|
result = {number, number, number, number};
|
|
153
|
+
return;
|
|
153
154
|
}
|
|
154
155
|
|
|
155
156
|
if (value.hasType<better::map<std::string, Float>>()) {
|
|
@@ -142,8 +142,6 @@
|
|
|
142
142
|
<SubSystem>Console</SubSystem>
|
|
143
143
|
<GenerateWindowsMetadata>true</GenerateWindowsMetadata>
|
|
144
144
|
<ModuleDefinitionFile>Microsoft.ReactNative.def</ModuleDefinitionFile>
|
|
145
|
-
<!-- #8824: The Hermes NuGet package adds itself to be linked, but we go through Hermes Shim instead. Ignore the unused DLL until using NuGet package with "HermesNoLink" -->
|
|
146
|
-
<AdditionalOptions>/IGNORE:4199</AdditionalOptions>
|
|
147
145
|
</Link>
|
|
148
146
|
<Midl>
|
|
149
147
|
<AdditionalIncludeDirectories>$(ReactNativeWindowsDir)Microsoft.ReactNative\Views\cppwinrt;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
@@ -37,5 +37,11 @@
|
|
|
37
37
|
<HermesNoDLLCopy Condition="'$(UseHermes)' != 'true'">true</HermesNoDLLCopy>
|
|
38
38
|
</PropertyGroup>
|
|
39
39
|
|
|
40
|
+
<!-- Should match entry in $(ReactNativeWindowsDir)vnext\Directory.Build.props -->
|
|
41
|
+
<PropertyGroup Label="NuGet" Condition="'$(MSBuildProjectExtension)' == '.vcxproj'">
|
|
42
|
+
<!--See https://docs.microsoft.com/en-us/nuget/reference/msbuild-targets#restore-target-->
|
|
43
|
+
<RestoreUseStaticGraphEvaluation Condition="'$(BuildingInsideVisualStudio)' == 'true'">true</RestoreUseStaticGraphEvaluation>
|
|
44
|
+
</PropertyGroup>
|
|
45
|
+
|
|
40
46
|
<Import Project="$(ReactNativeWindowsDir)\PropertySheets\Generated\PackageVersion.g.props" />
|
|
41
47
|
</Project>
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
-
<!--
|
|
2
|
+
<!--
|
|
3
3
|
Copyright (c) Microsoft Corporation.
|
|
4
4
|
Licensed under the MIT License.
|
|
5
5
|
|
|
@@ -8,9 +8,15 @@
|
|
|
8
8
|
Microsoft.ReactNative.
|
|
9
9
|
-->
|
|
10
10
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" InitialTargets="ReactNativeWindowsValidateProps">
|
|
11
|
-
|
|
11
|
+
|
|
12
12
|
<Target Name="ReactNativeWindowsValidateProps">
|
|
13
13
|
<Error Condition="'$(ReactNativeWindowsDirNotSet)' == 'true'" Text="'ReactNativeWindowsDir' should be set to the resolved location of the `react-native-windows` package. See https://aka.ms/ReactNativeWindowsDir." />
|
|
14
14
|
</Target>
|
|
15
15
|
|
|
16
|
+
<!-- Should match entry in $(ReactNativeWindowsDir)vnext\Directory.Build.targets -->
|
|
17
|
+
<!--Allow implicitly restoring PackageReference dependencies in C++ projects using the Visual Studio IDE.-->
|
|
18
|
+
<Target Name="BeforeResolveReferences" Condition="'$(BuildingInsideVisualStudio)' == 'true' AND '$(MSBuildProjectExtension)' == '.vcxproj'">
|
|
19
|
+
<MSBuild Projects="$(MSBuildProjectFile)" Targets="Restore" />
|
|
20
|
+
</Target>
|
|
21
|
+
|
|
16
22
|
</Project>
|
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
-->
|
|
11
11
|
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
12
12
|
<PropertyGroup>
|
|
13
|
-
<ReactNativeWindowsVersion>0.0.0-canary.
|
|
13
|
+
<ReactNativeWindowsVersion>0.0.0-canary.433</ReactNativeWindowsVersion>
|
|
14
14
|
<ReactNativeWindowsMajor>0</ReactNativeWindowsMajor>
|
|
15
15
|
<ReactNativeWindowsMinor>0</ReactNativeWindowsMinor>
|
|
16
16
|
<ReactNativeWindowsPatch>0</ReactNativeWindowsPatch>
|
|
@@ -12,6 +12,8 @@
|
|
|
12
12
|
<HermesPackage Condition="'$(HermesPackage)' == '' And Exists('$(PkgReactNative_Hermes_Windows)')">$(PkgReactNative_Hermes_Windows)</HermesPackage>
|
|
13
13
|
<HermesPackage Condition="'$(HermesPackage)' == ''">$(NuGetPackageRoot)\ReactNative.Hermes.Windows\$(HermesVersion)</HermesPackage>
|
|
14
14
|
<EnableHermesInspectorInReleaseFlavor Condition="'$(EnableHermesInspectorInReleaseFlavor)' == ''">false</EnableHermesInspectorInReleaseFlavor>
|
|
15
|
+
<!-- Disable linking Hermes into the output in cases where we need to fully rely on HermesShim -->
|
|
16
|
+
<HermesNoLink Condition="'$(HermesNoLink)' == '' and '$(Configuration)' == 'Release' and '$(EnableHermesInspectorInReleaseFlavor)' != 'true'">true</HermesNoLink>
|
|
15
17
|
<!-- Use Hermes bytecode bundles provided by metro hermes compiler when available -->
|
|
16
18
|
<EnableDevServerHBCBundles Condition="'$(EnableDevServerHBCBundles)' == ''">false</EnableDevServerHBCBundles>
|
|
17
19
|
|
|
@@ -98,8 +98,6 @@ WinRTWebSocketResource::WinRTWebSocketResource(
|
|
|
98
98
|
IDataWriter &&writer,
|
|
99
99
|
vector<ChainValidationResult> &&certExceptions)
|
|
100
100
|
: m_socket{std::move(socket)}, m_writer{std::move(writer)} {
|
|
101
|
-
m_socket.MessageReceived({this, &WinRTWebSocketResource::OnMessageReceived});
|
|
102
|
-
|
|
103
101
|
for (const auto &certException : certExceptions) {
|
|
104
102
|
m_socket.Control().IgnorableServerCertificateErrors().Append(certException);
|
|
105
103
|
}
|
|
@@ -288,36 +286,6 @@ fire_and_forget WinRTWebSocketResource::PerformClose() noexcept {
|
|
|
288
286
|
m_closePerformed.Set();
|
|
289
287
|
}
|
|
290
288
|
|
|
291
|
-
void WinRTWebSocketResource::OnMessageReceived(
|
|
292
|
-
IWebSocket const &sender,
|
|
293
|
-
IMessageWebSocketMessageReceivedEventArgs const &args) {
|
|
294
|
-
try {
|
|
295
|
-
string response;
|
|
296
|
-
IDataReader reader = args.GetDataReader();
|
|
297
|
-
auto len = reader.UnconsumedBufferLength();
|
|
298
|
-
if (args.MessageType() == SocketMessageType::Utf8) {
|
|
299
|
-
reader.UnicodeEncoding(UnicodeEncoding::Utf8);
|
|
300
|
-
vector<uint8_t> data(len);
|
|
301
|
-
reader.ReadBytes(data);
|
|
302
|
-
|
|
303
|
-
response = string(CheckedReinterpretCast<char *>(data.data()), data.size());
|
|
304
|
-
} else {
|
|
305
|
-
auto buffer = reader.ReadBuffer(len);
|
|
306
|
-
winrt::hstring data = CryptographicBuffer::EncodeToBase64String(buffer);
|
|
307
|
-
|
|
308
|
-
response = winrt::to_string(std::wstring_view(data));
|
|
309
|
-
}
|
|
310
|
-
|
|
311
|
-
if (m_readHandler) {
|
|
312
|
-
m_readHandler(response.length(), response, args.MessageType() == SocketMessageType::Binary);
|
|
313
|
-
}
|
|
314
|
-
} catch (hresult_error const &e) {
|
|
315
|
-
if (m_errorHandler) {
|
|
316
|
-
m_errorHandler({HResultToString(e), ErrorType::Receive});
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
|
|
321
289
|
void WinRTWebSocketResource::Synchronize() noexcept {
|
|
322
290
|
// Ensure sequence of other operations
|
|
323
291
|
if (m_connectRequested) {
|
|
@@ -330,6 +298,35 @@ void WinRTWebSocketResource::Synchronize() noexcept {
|
|
|
330
298
|
#pragma region IWebSocketResource
|
|
331
299
|
|
|
332
300
|
void WinRTWebSocketResource::Connect(string &&url, const Protocols &protocols, const Options &options) noexcept {
|
|
301
|
+
m_socket.MessageReceived(
|
|
302
|
+
[self = shared_from_this()](IWebSocket const &sender, IMessageWebSocketMessageReceivedEventArgs const &args) {
|
|
303
|
+
try {
|
|
304
|
+
string response;
|
|
305
|
+
IDataReader reader = args.GetDataReader();
|
|
306
|
+
auto len = reader.UnconsumedBufferLength();
|
|
307
|
+
if (args.MessageType() == SocketMessageType::Utf8) {
|
|
308
|
+
reader.UnicodeEncoding(UnicodeEncoding::Utf8);
|
|
309
|
+
vector<uint8_t> data(len);
|
|
310
|
+
reader.ReadBytes(data);
|
|
311
|
+
|
|
312
|
+
response = string(CheckedReinterpretCast<char *>(data.data()), data.size());
|
|
313
|
+
} else {
|
|
314
|
+
auto buffer = reader.ReadBuffer(len);
|
|
315
|
+
winrt::hstring data = CryptographicBuffer::EncodeToBase64String(buffer);
|
|
316
|
+
|
|
317
|
+
response = winrt::to_string(std::wstring_view(data));
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
if (self->m_readHandler) {
|
|
321
|
+
self->m_readHandler(response.length(), response, args.MessageType() == SocketMessageType::Binary);
|
|
322
|
+
}
|
|
323
|
+
} catch (hresult_error const &e) {
|
|
324
|
+
if (self->m_errorHandler) {
|
|
325
|
+
self->m_errorHandler({HResultToString(e), ErrorType::Receive});
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
});
|
|
329
|
+
|
|
333
330
|
m_readyState = ReadyState::Connecting;
|
|
334
331
|
|
|
335
332
|
for (const auto &header : options) {
|
|
@@ -51,9 +51,6 @@ class WinRTWebSocketResource : public IWebSocketResource, public std::enable_sha
|
|
|
51
51
|
winrt::fire_and_forget PerformWrite(std::string &&message, bool isBinary) noexcept;
|
|
52
52
|
winrt::fire_and_forget PerformClose() noexcept;
|
|
53
53
|
|
|
54
|
-
void OnMessageReceived(
|
|
55
|
-
winrt::Windows::Networking::Sockets::IWebSocket const &sender,
|
|
56
|
-
winrt::Windows::Networking::Sockets::IMessageWebSocketMessageReceivedEventArgs const &args);
|
|
57
54
|
void Synchronize() noexcept;
|
|
58
55
|
|
|
59
56
|
public:
|
|
@@ -41,6 +41,12 @@ struct AccessibilityManagerSpec_setAccessibilityContentSizeMultipliers_JSMultipl
|
|
|
41
41
|
std::optional<double> accessibilityExtraExtraExtraLarge;
|
|
42
42
|
};
|
|
43
43
|
|
|
44
|
+
REACT_STRUCT(AccessibilityManagerSpec_announceForAccessibilityWithOptions_options)
|
|
45
|
+
struct AccessibilityManagerSpec_announceForAccessibilityWithOptions_options {
|
|
46
|
+
REACT_FIELD(queue)
|
|
47
|
+
std::optional<bool> queue;
|
|
48
|
+
};
|
|
49
|
+
|
|
44
50
|
struct AccessibilityManagerSpec : winrt::Microsoft::ReactNative::TurboModuleSpec {
|
|
45
51
|
static constexpr auto methods = std::tuple{
|
|
46
52
|
Method<void(Callback<bool>, Callback<::React::JSValue>) noexcept>{0, L"getCurrentBoldTextState"},
|
|
@@ -52,6 +58,7 @@ struct AccessibilityManagerSpec : winrt::Microsoft::ReactNative::TurboModuleSpec
|
|
|
52
58
|
Method<void(AccessibilityManagerSpec_setAccessibilityContentSizeMultipliers_JSMultipliers) noexcept>{6, L"setAccessibilityContentSizeMultipliers"},
|
|
53
59
|
Method<void(double) noexcept>{7, L"setAccessibilityFocus"},
|
|
54
60
|
Method<void(std::string) noexcept>{8, L"announceForAccessibility"},
|
|
61
|
+
Method<void(std::string, AccessibilityManagerSpec_announceForAccessibilityWithOptions_options) noexcept>{9, L"announceForAccessibilityWithOptions"},
|
|
55
62
|
};
|
|
56
63
|
|
|
57
64
|
template <class TModule>
|
|
@@ -103,6 +110,11 @@ struct AccessibilityManagerSpec : winrt::Microsoft::ReactNative::TurboModuleSpec
|
|
|
103
110
|
"announceForAccessibility",
|
|
104
111
|
" REACT_METHOD(announceForAccessibility) void announceForAccessibility(std::string announcement) noexcept { /* implementation */ }}\n"
|
|
105
112
|
" REACT_METHOD(announceForAccessibility) static void announceForAccessibility(std::string announcement) noexcept { /* implementation */ }}\n");
|
|
113
|
+
REACT_SHOW_METHOD_SPEC_ERRORS(
|
|
114
|
+
9,
|
|
115
|
+
"announceForAccessibilityWithOptions",
|
|
116
|
+
" REACT_METHOD(announceForAccessibilityWithOptions) void announceForAccessibilityWithOptions(std::string announcement, AccessibilityManagerSpec_announceForAccessibilityWithOptions_options && options) noexcept { /* implementation */ }}\n"
|
|
117
|
+
" REACT_METHOD(announceForAccessibilityWithOptions) static void announceForAccessibilityWithOptions(std::string announcement, AccessibilityManagerSpec_announceForAccessibilityWithOptions_options && options) noexcept { /* implementation */ }}\n");
|
|
106
118
|
}
|
|
107
119
|
};
|
|
108
120
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-windows",
|
|
3
|
-
"version": "0.0.0-canary.
|
|
3
|
+
"version": "0.0.0-canary.433",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -27,7 +27,7 @@
|
|
|
27
27
|
"@react-native-community/cli-platform-android": "^6.0.0",
|
|
28
28
|
"@react-native-community/cli-platform-ios": "^6.0.0",
|
|
29
29
|
"@react-native-windows/cli": "0.0.0-canary.107",
|
|
30
|
-
"@react-native-windows/virtualized-list": "0.0.0-canary.
|
|
30
|
+
"@react-native-windows/virtualized-list": "0.0.0-canary.22",
|
|
31
31
|
"@react-native/assets": "1.0.0",
|
|
32
32
|
"@react-native/normalize-color": "2.0.0",
|
|
33
33
|
"@react-native/polyfills": "2.0.0",
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
"metro-config": "^0.66.0",
|
|
74
74
|
"prettier": "^2.4.1",
|
|
75
75
|
"react": "17.0.2",
|
|
76
|
-
"react-native": "0.0.0-
|
|
76
|
+
"react-native": "0.0.0-20211202-2008-9e2ec4d3d",
|
|
77
77
|
"react-native-platform-override": "^1.6.2",
|
|
78
78
|
"react-refresh": "^0.4.0",
|
|
79
79
|
"react-shallow-renderer": "16.14.1",
|
|
@@ -81,7 +81,7 @@
|
|
|
81
81
|
},
|
|
82
82
|
"peerDependencies": {
|
|
83
83
|
"react": "17.0.2",
|
|
84
|
-
"react-native": "0.0.0-
|
|
84
|
+
"react-native": "0.0.0-20211202-2008-9e2ec4d3d"
|
|
85
85
|
},
|
|
86
86
|
"beachball": {
|
|
87
87
|
"defaultNpmTag": "canary",
|
package/rntypes/index.d.ts
CHANGED
|
@@ -31,7 +31,6 @@
|
|
|
31
31
|
// Abe Dolinger <https://github.com/256hz>
|
|
32
32
|
// Dominique Richard <https://github.com/doumart>
|
|
33
33
|
// Mohamed Shaban <https://github.com/drmas>
|
|
34
|
-
// André Krüger <https://github.com/akrger>
|
|
35
34
|
// Jérémy Barbet <https://github.com/jeremybarbet>
|
|
36
35
|
// Christian Ost <https://github.com/ca057>
|
|
37
36
|
// David Sheldrick <https://github.com/ds300>
|
|
@@ -9590,8 +9589,8 @@ interface NativeModulesStatic {
|
|
|
9590
9589
|
* Native Modules written in ObjectiveC/Swift/Java exposed via the RCTBridge
|
|
9591
9590
|
* Define lazy getters for each module. These will return the module if already loaded, or load it if not.
|
|
9592
9591
|
* See https://reactnative.dev/docs/native-modules-ios
|
|
9593
|
-
*
|
|
9594
|
-
*
|
|
9592
|
+
* @example
|
|
9593
|
+
* const MyModule = NativeModules.ModuleName
|
|
9595
9594
|
*/
|
|
9596
9595
|
export const NativeModules: NativeModulesStatic;
|
|
9597
9596
|
export const Platform:
|
|
@@ -9730,8 +9729,8 @@ declare global {
|
|
|
9730
9729
|
|
|
9731
9730
|
/**
|
|
9732
9731
|
* This variable is set to true when react-native is running in Dev mode
|
|
9733
|
-
*
|
|
9734
|
-
*
|
|
9732
|
+
* @example
|
|
9733
|
+
* if (__DEV__) console.log('Running in dev mode')
|
|
9735
9734
|
*/
|
|
9736
9735
|
const __DEV__: boolean;
|
|
9737
9736
|
|
|
@@ -1,68 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Copyright (c) Facebook, Inc. and its 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
|
|
8
|
-
* @format
|
|
9
|
-
*/
|
|
10
|
-
|
|
11
|
-
import ReactNativeViewAttributes from '../Components/View/ReactNativeViewAttributes';
|
|
12
|
-
import UIManager from '../ReactNative/UIManager';
|
|
13
|
-
import {type HostComponent} from '../Renderer/shims/ReactNativeTypes';
|
|
14
|
-
import createReactNativeComponentClass from '../Renderer/shims/createReactNativeComponentClass';
|
|
15
|
-
import {type ProcessedColorValue} from '../StyleSheet/processColor';
|
|
16
|
-
import {type TextProps} from './TextProps';
|
|
17
|
-
|
|
18
|
-
type NativeTextProps = $ReadOnly<{
|
|
19
|
-
...TextProps,
|
|
20
|
-
isHighlighted?: ?boolean,
|
|
21
|
-
isPressable?: ?boolean, // [Windows]
|
|
22
|
-
selectionColor?: ?ProcessedColorValue,
|
|
23
|
-
}>;
|
|
24
|
-
|
|
25
|
-
export const NativeText: HostComponent<NativeTextProps> =
|
|
26
|
-
(createReactNativeComponentClass('RCTText', () => ({
|
|
27
|
-
validAttributes: {
|
|
28
|
-
...ReactNativeViewAttributes.UIView,
|
|
29
|
-
isHighlighted: true,
|
|
30
|
-
isPressable: true, // [Windows]
|
|
31
|
-
numberOfLines: true,
|
|
32
|
-
ellipsizeMode: true,
|
|
33
|
-
allowFontScaling: true,
|
|
34
|
-
maxFontSizeMultiplier: true,
|
|
35
|
-
disabled: true,
|
|
36
|
-
selectable: true,
|
|
37
|
-
selectionColor: true,
|
|
38
|
-
adjustsFontSizeToFit: true,
|
|
39
|
-
minimumFontScale: true,
|
|
40
|
-
textBreakStrategy: true,
|
|
41
|
-
onTextLayout: true,
|
|
42
|
-
onInlineViewLayout: true,
|
|
43
|
-
dataDetectorType: true,
|
|
44
|
-
android_hyphenationFrequency: true,
|
|
45
|
-
},
|
|
46
|
-
directEventTypes: {
|
|
47
|
-
topTextLayout: {
|
|
48
|
-
registrationName: 'onTextLayout',
|
|
49
|
-
},
|
|
50
|
-
topInlineViewLayout: {
|
|
51
|
-
registrationName: 'onInlineViewLayout',
|
|
52
|
-
},
|
|
53
|
-
},
|
|
54
|
-
uiViewClassName: 'RCTText',
|
|
55
|
-
})): any);
|
|
56
|
-
|
|
57
|
-
export const NativeVirtualText: HostComponent<NativeTextProps> =
|
|
58
|
-
!global.RN$Bridgeless && !UIManager.hasViewManagerConfig('RCTVirtualText')
|
|
59
|
-
? NativeText
|
|
60
|
-
: (createReactNativeComponentClass('RCTVirtualText', () => ({
|
|
61
|
-
validAttributes: {
|
|
62
|
-
...ReactNativeViewAttributes.UIView,
|
|
63
|
-
isHighlighted: true,
|
|
64
|
-
isPressable: true, // [Windows]
|
|
65
|
-
maxFontSizeMultiplier: true,
|
|
66
|
-
},
|
|
67
|
-
uiViewClassName: 'RCTVirtualText',
|
|
68
|
-
})): any);
|