react-native-windows 0.82.1 → 0.83.0-preview.0
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 +2 -7
- package/Libraries/Animated/components/AnimatedFlatList.js +5 -3
- package/Libraries/Animated/components/AnimatedImage.js +4 -3
- package/Libraries/Animated/components/AnimatedSectionList.js +2 -2
- package/Libraries/Animated/components/AnimatedText.js +7 -3
- package/Libraries/Animated/components/AnimatedView.js +3 -2
- package/Libraries/Animated/createAnimatedComponent.js +24 -12
- package/Libraries/Animated/nodes/AnimatedColor.js +26 -10
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.js +43 -15
- package/Libraries/Components/AccessibilityInfo/AccessibilityInfo.windows.js +43 -15
- package/Libraries/Components/ActivityIndicator/ActivityIndicator.d.ts +2 -2
- package/Libraries/Components/DrawerAndroid/DrawerLayoutAndroid.d.ts +2 -2
- package/Libraries/Components/Glyph/Glyph.js +4 -1
- package/Libraries/Components/ProgressBarAndroid/ProgressBarAndroid.d.ts +2 -2
- package/Libraries/Components/RefreshControl/RefreshControl.d.ts +3 -3
- package/Libraries/Components/SafeAreaView/SafeAreaView.d.ts +2 -2
- package/Libraries/Components/ScrollView/ScrollView.js +1 -0
- package/Libraries/Components/ScrollView/ScrollView.windows.js +1 -0
- package/Libraries/Components/ScrollView/ScrollViewStickyHeader.js +6 -6
- package/Libraries/Components/Switch/Switch.d.ts +2 -2
- package/Libraries/Components/Switch/Switch.windows.js +1 -1
- package/Libraries/Components/TextInput/TextInput.d.ts +2 -5
- package/Libraries/Components/TextInput/TextInput.js +6 -0
- package/Libraries/Components/TextInput/TextInput.windows.js +6 -0
- package/Libraries/Components/Touchable/TouchableBounce.js +7 -7
- package/Libraries/Components/Touchable/TouchableBounce.windows.js +7 -7
- package/Libraries/Components/Touchable/TouchableWithoutFeedback.windows.js +1 -1
- package/Libraries/Components/View/ReactNativeStyleAttributes.js +19 -1
- package/Libraries/Components/View/View.d.ts +2 -2
- package/Libraries/Components/View/View.windows.js +0 -1
- package/Libraries/Components/View/ViewNativeComponent.js +13 -1
- package/Libraries/Core/ReactNativeVersion.js +3 -3
- package/Libraries/Core/setUpPerformance.js +2 -0
- package/Libraries/Debugging/DebuggingOverlay.js +14 -14
- package/Libraries/Debugging/DebuggingOverlayRegistry.js +8 -2
- package/Libraries/EventEmitter/RCTDeviceEventEmitter.js +5 -2
- package/Libraries/Image/Image.d.ts +3 -3
- package/Libraries/Image/ImageInjection.js +3 -6
- package/Libraries/Image/ImageTypes.flow.js +3 -7
- package/Libraries/Lists/FlatList.js +8 -8
- package/Libraries/Lists/SectionList.d.ts +5 -1
- package/Libraries/Lists/ViewabilityHelper.js +1 -1
- package/Libraries/Lists/VirtualizedList.js +1 -0
- package/Libraries/LogBox/UI/AnsiHighlight.js +4 -1
- package/Libraries/NativeComponent/BaseViewConfig.android.js +11 -2
- package/Libraries/NativeComponent/NativeComponentRegistry.d.ts +98 -0
- package/Libraries/NativeComponent/NativeComponentRegistry.js +2 -0
- package/Libraries/NativeComponent/NativeComponentRegistryUnstable.js +3 -1
- package/Libraries/NativeComponent/ViewConfigIgnore.windows.js +45 -0
- package/Libraries/Network/RCTNetworking.android.js +3 -1
- package/Libraries/Network/RCTNetworking.ios.js +3 -0
- package/Libraries/Network/RCTNetworking.windows.js +3 -0
- package/Libraries/Network/XMLHttpRequest.js +1 -41
- package/Libraries/Pressability/usePressability.js +14 -3
- package/Libraries/ReactNative/PaperUIManager.windows.js +3 -3
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricPublicInstance.js +20 -82
- package/Libraries/ReactNative/getNativeComponentAttributes.js +12 -0
- package/Libraries/Renderer/implementations/ReactFabric-dev.js +6759 -4478
- package/Libraries/Renderer/implementations/ReactFabric-prod.js +3169 -3119
- package/Libraries/Renderer/implementations/ReactFabric-profiling.js +4732 -3535
- package/Libraries/Renderer/implementations/ReactNativeRenderer-dev.js +6646 -4070
- package/Libraries/Renderer/implementations/ReactNativeRenderer-prod.js +3136 -2825
- package/Libraries/Renderer/implementations/ReactNativeRenderer-profiling.js +4761 -3312
- package/Libraries/Renderer/shims/ReactNative.js +3 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.js +2 -1
- package/Libraries/Renderer/shims/ReactNativeTypes.windows.js +2 -1
- package/Libraries/StyleSheet/StyleSheetTypes.d.ts +1 -1
- package/Libraries/StyleSheet/StyleSheetTypes.js +44 -0
- package/Libraries/StyleSheet/processBackgroundPosition.js +284 -0
- package/Libraries/StyleSheet/processBackgroundRepeat.js +105 -0
- package/Libraries/StyleSheet/processBackgroundSize.js +104 -0
- package/Libraries/Text/Text.d.ts +2 -2
- package/Libraries/Text/TextNativeComponent.js +10 -0
- package/Libraries/TurboModule/TurboModuleRegistry.js +3 -9
- package/Libraries/Utilities/DevLoadingView.js +14 -6
- package/Libraries/Utilities/HMRClient.js +13 -5
- package/Microsoft.ReactNative/Base/CxxReactIncludes.h +11 -0
- package/Microsoft.ReactNative/CompositionComponentView.idl +2 -0
- package/Microsoft.ReactNative/CompositionHwndHost.idl +1 -0
- package/Microsoft.ReactNative/Fabric/ComponentView.cpp +1 -1
- package/Microsoft.ReactNative/Fabric/ComponentView.h +1 -1
- package/Microsoft.ReactNative/Fabric/Composition/CompositionHwndHost.cpp +10 -40
- package/Microsoft.ReactNative/Fabric/Composition/CompositionViewComponentView.cpp +3 -80
- package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.cpp +45 -12
- package/Microsoft.ReactNative/Fabric/Composition/ContentIslandComponentView.h +8 -0
- package/Microsoft.ReactNative/Fabric/Composition/Modal/WindowsModalHostViewComponentView.cpp +61 -74
- package/Microsoft.ReactNative/Fabric/Composition/ParagraphComponentView.h +4 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactCompositionViewComponentBuilder.h +1 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.cpp +4 -3
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeIsland.h +2 -1
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeWindow.cpp +245 -0
- package/Microsoft.ReactNative/Fabric/Composition/ReactNativeWindow.h +80 -0
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentDescriptor.h +20 -36
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.cpp +70 -49
- package/Microsoft.ReactNative/Fabric/Composition/TextInput/WindowsTextInputComponentView.h +4 -1
- package/Microsoft.ReactNative/Fabric/Composition/UriImageManager.cpp +5 -0
- package/Microsoft.ReactNative/Fabric/platform/react/renderer/textlayoutmanager/WindowsTextLayoutManager.cpp +7 -2
- package/Microsoft.ReactNative/IReactCompositionViewComponentBuilder.idl +1 -0
- package/Microsoft.ReactNative/Microsoft.ReactNative.vcxproj +1 -1
- package/Microsoft.ReactNative/Modules/ImageViewManagerModule.cpp +1 -1
- package/Microsoft.ReactNative/Modules/LogBoxModule.cpp +20 -94
- package/Microsoft.ReactNative/Modules/LogBoxModule.h +1 -3
- package/Microsoft.ReactNative/Pch/pch.h +2 -0
- package/Microsoft.ReactNative/ReactHost/CrashManager.cpp +5 -0
- package/Microsoft.ReactNative/ReactHost/ReactNativeHeaders.h +1 -0
- package/Microsoft.ReactNative/ReactNativeAppBuilder.cpp +0 -41
- package/Microsoft.ReactNative/ReactNativeAppBuilder.idl +0 -11
- package/Microsoft.ReactNative/ReactNativeIsland.idl +2 -3
- package/Microsoft.ReactNative/ReactNativeWin32App.cpp +31 -101
- package/Microsoft.ReactNative/ReactNativeWin32App.h +2 -13
- package/Microsoft.ReactNative/ReactNativeWindow.idl +44 -0
- package/Microsoft.ReactNative.Cxx/AutoDraw.h +9 -1
- package/Microsoft.ReactNative.Cxx/ReactCommon/CallInvoker.h +13 -16
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModule.h +24 -36
- package/Microsoft.ReactNative.Cxx/ReactCommon/TurboModuleUtils.h +5 -8
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/AString.h +8 -6
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Array.h +32 -49
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Base.h +27 -76
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Bool.h +4 -2
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/CallbackWrapper.h +19 -18
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Class.h +25 -48
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Convert.h +38 -31
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Error.h +11 -6
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/EventEmitter.h +47 -45
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Function.h +69 -89
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/HighResTimeStamp.h +8 -8
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/LongLivedObject.h +6 -6
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Number.h +16 -8
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Object.h +17 -24
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Promise.h +17 -17
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/bridging/Value.h +20 -29
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/debug/react_native_assert.h +2 -7
- package/Microsoft.ReactNative.Cxx/ReactCommon/react/timing/primitives.h +127 -115
- package/PropertySheets/External/Microsoft.ReactNative.Composition.CppLib.props +10 -0
- package/PropertySheets/External/Microsoft.ReactNative.Uwp.CppLib.props +10 -0
- package/PropertySheets/Generated/PackageVersion.g.props +5 -5
- package/PropertySheets/Warnings.props +2 -1
- package/ReactCommon/ReactCommon.vcxproj +21 -12
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/CxxNativeModule.cpp +2 -2
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/Instance.cpp +381 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSExecutor.cpp +49 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/JSIndexedRAMBundle.cpp +145 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/MethodCall.cpp +100 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ModuleRegistry.cpp +256 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/NativeToJsBridge.cpp +13 -4
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/RAMBundleRegistry.cpp +93 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/ReactMarker.cpp +149 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/cxxreact/TraceSection.h +25 -35
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsi/jsi/test/testlib.cpp +86 -67
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSIExecutor.cpp +629 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsiexecutor/jsireact/JSINativeModules.cpp +123 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.cpp +84 -68
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/NetworkIOAgent.h +31 -35
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/Utf8.h +4 -5
- package/ReactCommon/TEMP_UntilReactCommonUpdate/jsinspector-modern/network/HttpUtils.cpp +2 -1
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/core/ReactCommon/TurboModule.h +24 -36
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/dom/NativeDOM.h +28 -66
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/nativemodule/webperformance/NativePerformance.cpp +414 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/componentregistry/ComponentDescriptorRegistry.cpp +3 -3
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/image/conversions.h +8 -4
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/ParagraphShadowNode.cpp +19 -16
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/text/platform/android/react/renderer/components/text/ParagraphState.h +8 -9
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/AccessibilityPrimitives.h +25 -95
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/accessibilityPropsConversions.h +85 -42
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventDispatcher.cpp +81 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/EventQueueProcessor.cpp +140 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/imagemanager/primitives.h +25 -31
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/uimanager/UIManager.cpp +746 -0
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/runtime/ReactInstance.cpp +702 -0
- package/Scripts/Tfs/Layout-Desktop-Headers.ps1 +1 -15
- package/Scripts/creaternwapp.cmd +1 -1
- package/Scripts/perf/compare-results.js +357 -0
- package/Scripts/perf/create-perf-test.js +343 -0
- package/Scripts/perf/post-pr-comment.js +210 -0
- package/Shared/Hermes/HermesRuntimeTargetDelegate.cpp +8 -0
- package/Shared/Hermes/HermesRuntimeTargetDelegate.h +3 -0
- package/Shared/Shared.vcxitems +24 -12
- package/Shared/Shared.vcxitems.filters +11 -3
- package/codegen/NativeIntersectionObserverSpec.g.h +2 -0
- package/codegen/NativeNetworkingIOSSpec.g.h +2 -0
- package/codegen/NativePerformanceSpec.g.h +6 -0
- package/codegen/NativeReactNativeFeatureFlagsSpec.g.h +229 -139
- package/codegen/react/components/rnwcore/ActivityIndicatorView.g.h +2 -1
- package/codegen/react/components/rnwcore/AndroidDrawerLayout.g.h +42 -25
- package/codegen/react/components/rnwcore/AndroidHorizontalScrollContentView.g.h +2 -1
- package/codegen/react/components/rnwcore/AndroidProgressBar.g.h +2 -1
- package/codegen/react/components/rnwcore/AndroidSwipeRefreshLayout.g.h +11 -6
- package/codegen/react/components/rnwcore/AndroidSwitch.g.h +11 -6
- package/codegen/react/components/rnwcore/DebuggingOverlay.g.h +1 -0
- package/codegen/react/components/rnwcore/InputAccessory.g.h +2 -1
- package/codegen/react/components/rnwcore/ModalHostView.g.h +40 -23
- package/codegen/react/components/rnwcore/Props.cpp +6 -1
- package/codegen/react/components/rnwcore/Props.h +1 -0
- package/codegen/react/components/rnwcore/PullToRefreshView.g.h +11 -6
- package/codegen/react/components/rnwcore/SafeAreaView.g.h +1 -0
- package/codegen/react/components/rnwcore/Switch.g.h +11 -6
- package/codegen/react/components/rnwcore/UnimplementedNativeView.g.h +2 -1
- package/codegen/react/components/rnwcore/VirtualView.g.h +41 -8
- package/codegen/react/components/rnwcore/VirtualViewExperimental.g.h +45 -8
- package/codegen/rnwcoreJSI.h +3973 -6059
- package/index.js +6 -0
- package/index.windows.js +6 -0
- package/jest/mockComponent.js +6 -6
- package/jest/setup.js +15 -10
- package/package.json +27 -27
- package/src/private/components/virtualview/VirtualView.js +22 -27
- package/src/private/components/virtualview/VirtualViewExperimentalNativeComponent.js +6 -0
- package/src/private/featureflags/ReactNativeFeatureFlags.js +100 -19
- package/src/private/featureflags/specs/NativeReactNativeFeatureFlags.js +18 -3
- package/src/private/setup/setUpDefaultReactNativeEnvironment.js +6 -0
- package/src/private/specs_DEPRECATED/components/SwitchNativeComponent.js +1 -1
- package/src/private/specs_DEPRECATED/modules/NativeNetworkingIOS.js +1 -0
- package/src/private/webapis/dom/nodes/ReactNativeElement.js +12 -2
- package/src/private/webapis/intersectionobserver/IntersectionObserver.js +76 -15
- package/src/private/webapis/intersectionobserver/internals/IntersectionObserverManager.js +1 -0
- package/src/private/webapis/intersectionobserver/specs/NativeIntersectionObserver.js +1 -0
- package/src/private/webapis/performance/ResourceTiming.js +31 -4
- package/src/private/webapis/performance/internals/RawPerformanceEntry.js +4 -1
- package/src/private/webapis/performance/specs/NativePerformance.js +3 -0
- package/stubs/double-conversion/double-conversion.h +5 -0
- package/templates/cpp-app/template.config.js +1 -1
- package/templates/cpp-app/windows/MyApp/MyApp.vcxproj +3 -1
- package/templates/cpp-lib/template.config.js +1 -1
- package/templates/cpp-lib/windows/MyLib/MyLib.vcxproj +1 -1
- package/types/index.d.ts +1 -0
- package/types/public/ReactNativeTypes.d.ts +115 -2
- package/Libraries/ReactNative/ReactFabricPublicInstance/ReactFabricHostComponent.js +0 -152
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/view/conversions.h +0 -1574
- package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/core/ShadowNode.cpp +0 -528
- package/Scripts/OpenSSL.nuspec +0 -39
- package/Scripts/OpenSSL.targets +0 -36
- package/codegen/rnwcoreJSI-generated.cpp +0 -3470
|
@@ -33,9 +33,9 @@ void ComponentDescriptorRegistry::add(
|
|
|
33
33
|
std::unique_lock lock(mutex_);
|
|
34
34
|
|
|
35
35
|
auto componentDescriptor = componentDescriptorProvider.constructor(
|
|
36
|
-
{parameters_.eventDispatcher,
|
|
37
|
-
parameters_.contextContainer,
|
|
38
|
-
componentDescriptorProvider.flavor});
|
|
36
|
+
{.eventDispatcher = parameters_.eventDispatcher,
|
|
37
|
+
.contextContainer = parameters_.contextContainer,
|
|
38
|
+
.flavor = componentDescriptorProvider.flavor});
|
|
39
39
|
react_native_assert(
|
|
40
40
|
componentDescriptor->getComponentHandle() ==
|
|
41
41
|
componentDescriptorProvider.handle);
|
package/ReactCommon/TEMP_UntilReactCommonUpdate/react/renderer/components/image/conversions.h
CHANGED
|
@@ -18,7 +18,8 @@
|
|
|
18
18
|
|
|
19
19
|
namespace facebook::react {
|
|
20
20
|
|
|
21
|
-
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, ImageSource &result)
|
|
21
|
+
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, ImageSource &result)
|
|
22
|
+
{
|
|
22
23
|
if (value.hasType<std::string>()) {
|
|
23
24
|
result = {
|
|
24
25
|
/* .type = */ ImageSource::Type::Remote,
|
|
@@ -111,11 +112,13 @@ inline void fromRawValue(const PropsParserContext &context, const RawValue &valu
|
|
|
111
112
|
result.type = ImageSource::Type::Invalid;
|
|
112
113
|
}
|
|
113
114
|
|
|
114
|
-
inline std::string toString(const ImageSource &value)
|
|
115
|
+
inline std::string toString(const ImageSource &value)
|
|
116
|
+
{
|
|
115
117
|
return "{uri: " + value.uri + "}";
|
|
116
118
|
}
|
|
117
119
|
|
|
118
|
-
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, ImageResizeMode &result)
|
|
120
|
+
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, ImageResizeMode &result)
|
|
121
|
+
{
|
|
119
122
|
react_native_expect(value.hasType<std::string>());
|
|
120
123
|
if (!value.hasType<std::string>()) {
|
|
121
124
|
LOG(ERROR) << "Unsupported ImageResizeMode type";
|
|
@@ -145,7 +148,8 @@ inline void fromRawValue(const PropsParserContext &context, const RawValue &valu
|
|
|
145
148
|
}
|
|
146
149
|
}
|
|
147
150
|
|
|
148
|
-
inline std::string toString(const ImageResizeMode &value)
|
|
151
|
+
inline std::string toString(const ImageResizeMode &value)
|
|
152
|
+
{
|
|
149
153
|
switch (value) {
|
|
150
154
|
case ImageResizeMode::Cover:
|
|
151
155
|
return "cover";
|
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
namespace facebook::react {
|
|
37
37
|
using Content = ParagraphShadowNode::Content;
|
|
38
38
|
|
|
39
|
-
// NOLINTNEXTLINE(facebook-hte-CArray)
|
|
39
|
+
// NOLINTNEXTLINE(facebook-hte-CArray, modernize-avoid-c-arrays)
|
|
40
40
|
const char ParagraphComponentName[] = "Paragraph";
|
|
41
41
|
|
|
42
42
|
void ParagraphShadowNode::initialize() noexcept {
|
|
@@ -158,11 +158,12 @@ void ParagraphShadowNode::updateStateIfNeeded(
|
|
|
158
158
|
return;
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
-
setStateData(
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
161
|
+
setStateData(
|
|
162
|
+
ParagraphStateT{
|
|
163
|
+
content.attributedString,
|
|
164
|
+
content.paragraphAttributes,
|
|
165
|
+
textLayoutManager_,
|
|
166
|
+
layout});
|
|
166
167
|
}
|
|
167
168
|
|
|
168
169
|
void ParagraphShadowNode::updateStateIfNeeded(const Content& content) {
|
|
@@ -175,10 +176,11 @@ void ParagraphShadowNode::updateStateIfNeeded(const Content& content) {
|
|
|
175
176
|
return;
|
|
176
177
|
}
|
|
177
178
|
|
|
178
|
-
setStateData(
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
179
|
+
setStateData(
|
|
180
|
+
ParagraphState{
|
|
181
|
+
content.attributedString,
|
|
182
|
+
content.paragraphAttributes,
|
|
183
|
+
textLayoutManager_});
|
|
182
184
|
}
|
|
183
185
|
|
|
184
186
|
MeasuredPreparedLayout* ParagraphShadowNode::findUsableLayout() {
|
|
@@ -249,12 +251,13 @@ Size ParagraphShadowNode::measureContent(
|
|
|
249
251
|
auto measurement = tme.measurePreparedLayout(
|
|
250
252
|
preparedLayout, textLayoutContext, layoutConstraints);
|
|
251
253
|
|
|
252
|
-
measuredLayouts_.push_back(
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
254
|
+
measuredLayouts_.push_back(
|
|
255
|
+
MeasuredPreparedLayout{
|
|
256
|
+
.layoutConstraints = layoutConstraints,
|
|
257
|
+
.measurement = measurement,
|
|
258
|
+
// PreparedLayout is not trivially copyable on all platforms
|
|
259
|
+
// NOLINTNEXTLINE(performance-move-const-arg)
|
|
260
|
+
.preparedLayout = std::move(preparedLayout)});
|
|
258
261
|
assert_valid_size(measurement.size, layoutConstraints);
|
|
259
262
|
return measurement.size;
|
|
260
263
|
}
|
|
@@ -65,22 +65,21 @@ class ParagraphState final {
|
|
|
65
65
|
: attributedString(std::move(attributedString)),
|
|
66
66
|
paragraphAttributes(std::move(paragraphAttributes)),
|
|
67
67
|
layoutManager(std::move(layoutManager)),
|
|
68
|
-
measuredLayout(std::move(measuredLayout))
|
|
68
|
+
measuredLayout(std::move(measuredLayout))
|
|
69
|
+
{
|
|
70
|
+
}
|
|
69
71
|
|
|
70
72
|
ParagraphState(
|
|
71
73
|
AttributedString attributedString,
|
|
72
74
|
ParagraphAttributes paragraphAttributes,
|
|
73
75
|
std::weak_ptr<const TextLayoutManager> layoutManager)
|
|
74
|
-
: ParagraphState(
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
std::move(layoutManager),
|
|
78
|
-
{}) {}
|
|
76
|
+
: ParagraphState(std::move(attributedString), std::move(paragraphAttributes), std::move(layoutManager), {})
|
|
77
|
+
{
|
|
78
|
+
}
|
|
79
79
|
|
|
80
80
|
ParagraphState() = default;
|
|
81
|
-
ParagraphState(
|
|
82
|
-
|
|
83
|
-
const folly::dynamic& /*data*/) {
|
|
81
|
+
ParagraphState(const ParagraphState & /*previousState*/, const folly::dynamic & /*data*/)
|
|
82
|
+
{
|
|
84
83
|
react_native_assert(false && "Not supported");
|
|
85
84
|
};
|
|
86
85
|
|
|
@@ -12,8 +12,6 @@
|
|
|
12
12
|
#include <string>
|
|
13
13
|
#include <vector>
|
|
14
14
|
|
|
15
|
-
#include <react/renderer/debug/DebugStringConvertible.h>
|
|
16
|
-
|
|
17
15
|
namespace facebook::react {
|
|
18
16
|
|
|
19
17
|
enum class AccessibilityTraits : uint32_t {
|
|
@@ -38,15 +36,13 @@ enum class AccessibilityTraits : uint32_t {
|
|
|
38
36
|
TabBar = (1 << 17),
|
|
39
37
|
};
|
|
40
38
|
|
|
41
|
-
constexpr enum AccessibilityTraits operator|(
|
|
42
|
-
|
|
43
|
-
const enum AccessibilityTraits rhs) {
|
|
39
|
+
constexpr enum AccessibilityTraits operator|(const enum AccessibilityTraits lhs, const enum AccessibilityTraits rhs)
|
|
40
|
+
{
|
|
44
41
|
return (enum AccessibilityTraits)((uint32_t)lhs | (uint32_t)rhs);
|
|
45
42
|
}
|
|
46
43
|
|
|
47
|
-
constexpr enum AccessibilityTraits operator&(
|
|
48
|
-
|
|
49
|
-
const enum AccessibilityTraits rhs) {
|
|
44
|
+
constexpr enum AccessibilityTraits operator&(const enum AccessibilityTraits lhs, const enum AccessibilityTraits rhs)
|
|
45
|
+
{
|
|
50
46
|
return (enum AccessibilityTraits)((uint32_t)lhs & (uint32_t)rhs);
|
|
51
47
|
}
|
|
52
48
|
|
|
@@ -55,36 +51,13 @@ struct AccessibilityAction {
|
|
|
55
51
|
std::optional<std::string> label{};
|
|
56
52
|
};
|
|
57
53
|
|
|
58
|
-
inline
|
|
59
|
-
|
|
60
|
-
if (accessibilityAction.label.has_value()) {
|
|
61
|
-
result += ": '" + accessibilityAction.label.value() + "'";
|
|
62
|
-
}
|
|
63
|
-
return result;
|
|
64
|
-
}
|
|
65
|
-
|
|
66
|
-
inline std::string toString(
|
|
67
|
-
std::vector<AccessibilityAction> accessibilityActions) {
|
|
68
|
-
std::string result = "[";
|
|
69
|
-
for (size_t i = 0; i < accessibilityActions.size(); i++) {
|
|
70
|
-
result += toString(accessibilityActions[i]);
|
|
71
|
-
if (i < accessibilityActions.size() - 1) {
|
|
72
|
-
result += ", ";
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
result += "]";
|
|
76
|
-
return result;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
inline static bool operator==(
|
|
80
|
-
const AccessibilityAction& lhs,
|
|
81
|
-
const AccessibilityAction& rhs) {
|
|
54
|
+
inline static bool operator==(const AccessibilityAction &lhs, const AccessibilityAction &rhs)
|
|
55
|
+
{
|
|
82
56
|
return lhs.name == rhs.name && lhs.label == rhs.label;
|
|
83
57
|
}
|
|
84
58
|
|
|
85
|
-
inline static bool operator!=(
|
|
86
|
-
|
|
87
|
-
const AccessibilityAction& rhs) {
|
|
59
|
+
inline static bool operator!=(const AccessibilityAction &lhs, const AccessibilityAction &rhs)
|
|
60
|
+
{
|
|
88
61
|
return !(rhs == lhs);
|
|
89
62
|
}
|
|
90
63
|
|
|
@@ -99,56 +72,28 @@ struct AccessibilityState {
|
|
|
99
72
|
std::optional<bool> required{std::nullopt}; // [Windows] - Do not remove; required for Windows ISelectionProvider Implementation
|
|
100
73
|
};
|
|
101
74
|
|
|
102
|
-
constexpr bool operator==(
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
lhs.checked == rhs.checked && lhs.busy == rhs.busy &&
|
|
107
|
-
lhs.expanded == rhs.expanded;
|
|
75
|
+
constexpr bool operator==(const AccessibilityState &lhs, const AccessibilityState &rhs)
|
|
76
|
+
{
|
|
77
|
+
return lhs.disabled == rhs.disabled && lhs.selected == rhs.selected && lhs.checked == rhs.checked &&
|
|
78
|
+
lhs.busy == rhs.busy && lhs.expanded == rhs.expanded;
|
|
108
79
|
}
|
|
109
80
|
|
|
110
|
-
constexpr bool operator!=(
|
|
111
|
-
|
|
112
|
-
const AccessibilityState& rhs) {
|
|
81
|
+
constexpr bool operator!=(const AccessibilityState &lhs, const AccessibilityState &rhs)
|
|
82
|
+
{
|
|
113
83
|
return !(rhs == lhs);
|
|
114
84
|
}
|
|
115
85
|
|
|
116
|
-
#if RN_DEBUG_STRING_CONVERTIBLE
|
|
117
|
-
inline std::string toString(AccessibilityState::CheckedState state) {
|
|
118
|
-
switch (state) {
|
|
119
|
-
case AccessibilityState::Unchecked:
|
|
120
|
-
return "Unchecked";
|
|
121
|
-
case AccessibilityState::Checked:
|
|
122
|
-
return "Checked";
|
|
123
|
-
case AccessibilityState::Mixed:
|
|
124
|
-
return "Mixed";
|
|
125
|
-
case AccessibilityState::None:
|
|
126
|
-
return "None";
|
|
127
|
-
}
|
|
128
|
-
}
|
|
129
|
-
|
|
130
|
-
inline std::string toString(const AccessibilityState& accessibilityState) {
|
|
131
|
-
return "{disabled:" + toString(accessibilityState.disabled) +
|
|
132
|
-
",selected:" + toString(accessibilityState.selected) +
|
|
133
|
-
",checked:" + toString(accessibilityState.checked) +
|
|
134
|
-
",busy:" + toString(accessibilityState.busy) +
|
|
135
|
-
",expanded:" + toString(accessibilityState.expanded) + "}";
|
|
136
|
-
}
|
|
137
|
-
#endif
|
|
138
|
-
|
|
139
86
|
struct AccessibilityLabelledBy {
|
|
140
87
|
std::vector<std::string> value{};
|
|
141
88
|
};
|
|
142
89
|
|
|
143
|
-
inline static bool operator==(
|
|
144
|
-
|
|
145
|
-
const AccessibilityLabelledBy& rhs) {
|
|
90
|
+
inline static bool operator==(const AccessibilityLabelledBy &lhs, const AccessibilityLabelledBy &rhs)
|
|
91
|
+
{
|
|
146
92
|
return lhs.value == rhs.value;
|
|
147
93
|
}
|
|
148
94
|
|
|
149
|
-
inline static bool operator!=(
|
|
150
|
-
|
|
151
|
-
const AccessibilityLabelledBy& rhs) {
|
|
95
|
+
inline static bool operator!=(const AccessibilityLabelledBy &lhs, const AccessibilityLabelledBy &rhs)
|
|
96
|
+
{
|
|
152
97
|
return !(lhs == rhs);
|
|
153
98
|
}
|
|
154
99
|
|
|
@@ -159,16 +104,13 @@ struct AccessibilityValue {
|
|
|
159
104
|
std::optional<std::string> text{};
|
|
160
105
|
};
|
|
161
106
|
|
|
162
|
-
constexpr bool operator==(
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
return lhs.min == rhs.min && lhs.max == rhs.max && lhs.now == rhs.now &&
|
|
166
|
-
lhs.text == rhs.text;
|
|
107
|
+
constexpr bool operator==(const AccessibilityValue &lhs, const AccessibilityValue &rhs)
|
|
108
|
+
{
|
|
109
|
+
return lhs.min == rhs.min && lhs.max == rhs.max && lhs.now == rhs.now && lhs.text == rhs.text;
|
|
167
110
|
}
|
|
168
111
|
|
|
169
|
-
constexpr bool operator!=(
|
|
170
|
-
|
|
171
|
-
const AccessibilityValue& rhs) {
|
|
112
|
+
constexpr bool operator!=(const AccessibilityValue &lhs, const AccessibilityValue &rhs)
|
|
113
|
+
{
|
|
172
114
|
return !(rhs == lhs);
|
|
173
115
|
}
|
|
174
116
|
|
|
@@ -185,19 +127,7 @@ enum class AccessibilityLiveRegion : uint8_t {
|
|
|
185
127
|
Assertive,
|
|
186
128
|
};
|
|
187
129
|
|
|
188
|
-
|
|
189
|
-
const AccessibilityLiveRegion& accessibilityLiveRegion) {
|
|
190
|
-
switch (accessibilityLiveRegion) {
|
|
191
|
-
case AccessibilityLiveRegion::None:
|
|
192
|
-
return "none";
|
|
193
|
-
case AccessibilityLiveRegion::Polite:
|
|
194
|
-
return "polite";
|
|
195
|
-
case AccessibilityLiveRegion::Assertive:
|
|
196
|
-
return "assertive";
|
|
197
|
-
}
|
|
198
|
-
}
|
|
199
|
-
|
|
200
|
-
enum class AccessibilityRole {
|
|
130
|
+
enum class AccessibilityRole : uint8_t {
|
|
201
131
|
None,
|
|
202
132
|
Button,
|
|
203
133
|
Dropdownlist,
|
|
@@ -240,7 +170,7 @@ enum class AccessibilityRole {
|
|
|
240
170
|
Iconmenu,
|
|
241
171
|
};
|
|
242
172
|
|
|
243
|
-
enum class Role {
|
|
173
|
+
enum class Role : uint8_t {
|
|
244
174
|
Alert,
|
|
245
175
|
Alertdialog,
|
|
246
176
|
Application,
|
|
@@ -14,12 +14,14 @@
|
|
|
14
14
|
#include <react/renderer/components/view/AccessibilityPrimitives.h>
|
|
15
15
|
#include <react/renderer/core/PropsParserContext.h>
|
|
16
16
|
#include <react/renderer/core/propsConversions.h>
|
|
17
|
+
#include <react/renderer/debug/DebugStringConvertible.h>
|
|
17
18
|
|
|
18
19
|
#include <unordered_map>
|
|
19
20
|
|
|
20
21
|
namespace facebook::react {
|
|
21
22
|
|
|
22
|
-
inline void fromString(const std::string&
|
|
23
|
+
inline void fromString(const std::string &string, AccessibilityTraits &result)
|
|
24
|
+
{
|
|
23
25
|
if (string == "none") {
|
|
24
26
|
result = AccessibilityTraits::None;
|
|
25
27
|
return;
|
|
@@ -107,10 +109,8 @@ inline void fromString(const std::string& string, AccessibilityTraits& result) {
|
|
|
107
109
|
result = AccessibilityTraits::None;
|
|
108
110
|
}
|
|
109
111
|
|
|
110
|
-
inline void fromRawValue(
|
|
111
|
-
|
|
112
|
-
const RawValue& value,
|
|
113
|
-
AccessibilityTraits& result) {
|
|
112
|
+
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, AccessibilityTraits &result)
|
|
113
|
+
{
|
|
114
114
|
if (value.hasType<std::string>()) {
|
|
115
115
|
fromString((std::string)value, result);
|
|
116
116
|
return;
|
|
@@ -121,7 +121,7 @@ inline void fromRawValue(
|
|
|
121
121
|
react_native_expect(value.hasType<std::vector<std::string>>());
|
|
122
122
|
if (value.hasType<std::vector<std::string>>()) {
|
|
123
123
|
auto items = (std::vector<std::string>)value;
|
|
124
|
-
for (auto&
|
|
124
|
+
for (auto &item : items) {
|
|
125
125
|
AccessibilityTraits itemAccessibilityTraits;
|
|
126
126
|
fromString(item, itemAccessibilityTraits);
|
|
127
127
|
result = result | itemAccessibilityTraits;
|
|
@@ -131,10 +131,8 @@ inline void fromRawValue(
|
|
|
131
131
|
}
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
-
inline void fromRawValue(
|
|
135
|
-
|
|
136
|
-
const RawValue& value,
|
|
137
|
-
AccessibilityState& result) {
|
|
134
|
+
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, AccessibilityState &result)
|
|
135
|
+
{
|
|
138
136
|
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
139
137
|
auto selected = map.find("selected");
|
|
140
138
|
if (selected != map.end()) {
|
|
@@ -186,8 +184,8 @@ inline void fromRawValue(
|
|
|
186
184
|
// [Windows] - DO NOT REMOVE
|
|
187
185
|
}
|
|
188
186
|
|
|
189
|
-
inline std::string toString(
|
|
190
|
-
|
|
187
|
+
inline std::string toString(const ImportantForAccessibility &importantForAccessibility)
|
|
188
|
+
{
|
|
191
189
|
switch (importantForAccessibility) {
|
|
192
190
|
case ImportantForAccessibility::Auto:
|
|
193
191
|
return "auto";
|
|
@@ -200,10 +198,8 @@ inline std::string toString(
|
|
|
200
198
|
}
|
|
201
199
|
}
|
|
202
200
|
|
|
203
|
-
inline void fromRawValue(
|
|
204
|
-
|
|
205
|
-
const RawValue& value,
|
|
206
|
-
ImportantForAccessibility& result) {
|
|
201
|
+
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, ImportantForAccessibility &result)
|
|
202
|
+
{
|
|
207
203
|
result = ImportantForAccessibility::Auto;
|
|
208
204
|
react_native_expect(value.hasType<std::string>());
|
|
209
205
|
if (value.hasType<std::string>()) {
|
|
@@ -225,10 +221,8 @@ inline void fromRawValue(
|
|
|
225
221
|
}
|
|
226
222
|
}
|
|
227
223
|
|
|
228
|
-
inline void fromRawValue(
|
|
229
|
-
|
|
230
|
-
const RawValue& value,
|
|
231
|
-
AccessibilityAction& result) {
|
|
224
|
+
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, AccessibilityAction &result)
|
|
225
|
+
{
|
|
232
226
|
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
233
227
|
|
|
234
228
|
auto name = map.find("name");
|
|
@@ -245,10 +239,8 @@ inline void fromRawValue(
|
|
|
245
239
|
}
|
|
246
240
|
}
|
|
247
241
|
|
|
248
|
-
inline void fromRawValue(
|
|
249
|
-
|
|
250
|
-
const RawValue& value,
|
|
251
|
-
AccessibilityValue& result) {
|
|
242
|
+
inline void fromRawValue(const PropsParserContext & /*unused*/, const RawValue &value, AccessibilityValue &result)
|
|
243
|
+
{
|
|
252
244
|
auto map = (std::unordered_map<std::string, RawValue>)value;
|
|
253
245
|
|
|
254
246
|
auto min = map.find("min");
|
|
@@ -280,10 +272,8 @@ inline void fromRawValue(
|
|
|
280
272
|
}
|
|
281
273
|
}
|
|
282
274
|
|
|
283
|
-
inline void fromRawValue(
|
|
284
|
-
|
|
285
|
-
const RawValue& value,
|
|
286
|
-
AccessibilityLabelledBy& result) {
|
|
275
|
+
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, AccessibilityLabelledBy &result)
|
|
276
|
+
{
|
|
287
277
|
if (value.hasType<std::string>()) {
|
|
288
278
|
result.value.push_back((std::string)value);
|
|
289
279
|
} else if (value.hasType<std::vector<std::string>>()) {
|
|
@@ -291,10 +281,8 @@ inline void fromRawValue(
|
|
|
291
281
|
}
|
|
292
282
|
}
|
|
293
283
|
|
|
294
|
-
inline void fromRawValue(
|
|
295
|
-
|
|
296
|
-
const RawValue& value,
|
|
297
|
-
AccessibilityLiveRegion& result) {
|
|
284
|
+
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, AccessibilityLiveRegion &result)
|
|
285
|
+
{
|
|
298
286
|
result = AccessibilityLiveRegion::None;
|
|
299
287
|
react_native_expect(value.hasType<std::string>());
|
|
300
288
|
if (value.hasType<std::string>()) {
|
|
@@ -314,7 +302,8 @@ inline void fromRawValue(
|
|
|
314
302
|
}
|
|
315
303
|
}
|
|
316
304
|
|
|
317
|
-
inline std::string toString(const AccessibilityRole&
|
|
305
|
+
inline std::string toString(const AccessibilityRole &accessibilityRole)
|
|
306
|
+
{
|
|
318
307
|
switch (accessibilityRole) {
|
|
319
308
|
case AccessibilityRole::None:
|
|
320
309
|
return "none";
|
|
@@ -404,10 +393,8 @@ inline std::string toString(const AccessibilityRole& accessibilityRole) {
|
|
|
404
393
|
return "none";
|
|
405
394
|
}
|
|
406
395
|
|
|
407
|
-
inline void fromRawValue(
|
|
408
|
-
|
|
409
|
-
const RawValue& value,
|
|
410
|
-
AccessibilityRole& result) {
|
|
396
|
+
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, AccessibilityRole &result)
|
|
397
|
+
{
|
|
411
398
|
react_native_expect(value.hasType<std::string>());
|
|
412
399
|
if (value.hasType<std::string>()) {
|
|
413
400
|
auto string = (std::string)value;
|
|
@@ -504,7 +491,8 @@ inline void fromRawValue(
|
|
|
504
491
|
result = AccessibilityRole::None;
|
|
505
492
|
}
|
|
506
493
|
|
|
507
|
-
inline std::string toString(const Role&
|
|
494
|
+
inline std::string toString(const Role &role)
|
|
495
|
+
{
|
|
508
496
|
switch (role) {
|
|
509
497
|
case Role::Alert:
|
|
510
498
|
return "alert";
|
|
@@ -644,10 +632,8 @@ inline std::string toString(const Role& role) {
|
|
|
644
632
|
return "none";
|
|
645
633
|
}
|
|
646
634
|
|
|
647
|
-
inline void fromRawValue(
|
|
648
|
-
|
|
649
|
-
const RawValue& value,
|
|
650
|
-
Role& result) {
|
|
635
|
+
inline void fromRawValue(const PropsParserContext &context, const RawValue &value, Role &result)
|
|
636
|
+
{
|
|
651
637
|
react_native_expect(value.hasType<std::string>());
|
|
652
638
|
if (value.hasType<std::string>()) {
|
|
653
639
|
auto string = (std::string)value;
|
|
@@ -796,4 +782,61 @@ inline void fromRawValue(
|
|
|
796
782
|
result = Role::None;
|
|
797
783
|
}
|
|
798
784
|
|
|
785
|
+
inline std::string toString(AccessibilityLiveRegion accessibilityLiveRegion)
|
|
786
|
+
{
|
|
787
|
+
switch (accessibilityLiveRegion) {
|
|
788
|
+
case AccessibilityLiveRegion::None:
|
|
789
|
+
return "none";
|
|
790
|
+
case AccessibilityLiveRegion::Polite:
|
|
791
|
+
return "polite";
|
|
792
|
+
case AccessibilityLiveRegion::Assertive:
|
|
793
|
+
return "assertive";
|
|
794
|
+
}
|
|
795
|
+
}
|
|
796
|
+
|
|
797
|
+
#if RN_DEBUG_STRING_CONVERTIBLE
|
|
798
|
+
inline std::string toString(AccessibilityState::CheckedState state)
|
|
799
|
+
{
|
|
800
|
+
switch (state) {
|
|
801
|
+
case AccessibilityState::Unchecked:
|
|
802
|
+
return "Unchecked";
|
|
803
|
+
case AccessibilityState::Checked:
|
|
804
|
+
return "Checked";
|
|
805
|
+
case AccessibilityState::Mixed:
|
|
806
|
+
return "Mixed";
|
|
807
|
+
case AccessibilityState::None:
|
|
808
|
+
return "None";
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
inline std::string toString(const AccessibilityAction &accessibilityAction)
|
|
813
|
+
{
|
|
814
|
+
std::string result = accessibilityAction.name;
|
|
815
|
+
if (accessibilityAction.label.has_value()) {
|
|
816
|
+
result += ": '" + accessibilityAction.label.value() + "'";
|
|
817
|
+
}
|
|
818
|
+
return result;
|
|
819
|
+
}
|
|
820
|
+
|
|
821
|
+
inline std::string toString(std::vector<AccessibilityAction> accessibilityActions)
|
|
822
|
+
{
|
|
823
|
+
std::string result = "[";
|
|
824
|
+
for (size_t i = 0; i < accessibilityActions.size(); i++) {
|
|
825
|
+
result += toString(accessibilityActions[i]);
|
|
826
|
+
if (i < accessibilityActions.size() - 1) {
|
|
827
|
+
result += ", ";
|
|
828
|
+
}
|
|
829
|
+
}
|
|
830
|
+
result += "]";
|
|
831
|
+
return result;
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
inline std::string toString(const AccessibilityState &accessibilityState)
|
|
835
|
+
{
|
|
836
|
+
return "{disabled:" + toString(accessibilityState.disabled) + ",selected:" + toString(accessibilityState.selected) +
|
|
837
|
+
",checked:" + toString(accessibilityState.checked) + ",busy:" + toString(accessibilityState.busy) +
|
|
838
|
+
",expanded:" + toString(accessibilityState.expanded) + "}";
|
|
839
|
+
}
|
|
840
|
+
#endif
|
|
841
|
+
|
|
799
842
|
} // namespace facebook::react
|
|
@@ -0,0 +1,81 @@
|
|
|
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
|
+
|
|
8
|
+
|
|
9
|
+
#if _MSC_VER
|
|
10
|
+
#pragma warning(push)
|
|
11
|
+
#pragma warning(disable : 4996) // deprecated APIs
|
|
12
|
+
#endif
|
|
13
|
+
#include "EventDispatcher.h"
|
|
14
|
+
#include <cxxreact/JSExecutor.h>
|
|
15
|
+
#include <react/renderer/core/StateUpdate.h>
|
|
16
|
+
|
|
17
|
+
#include "EventQueue.h"
|
|
18
|
+
#include "RawEvent.h"
|
|
19
|
+
|
|
20
|
+
namespace facebook::react {
|
|
21
|
+
|
|
22
|
+
EventDispatcher::EventDispatcher(
|
|
23
|
+
const EventQueueProcessor& eventProcessor,
|
|
24
|
+
std::unique_ptr<EventBeat> eventBeat,
|
|
25
|
+
StatePipe statePipe,
|
|
26
|
+
std::weak_ptr<EventLogger> eventLogger)
|
|
27
|
+
: eventQueue_(EventQueue(eventProcessor, std::move(eventBeat))),
|
|
28
|
+
statePipe_(std::move(statePipe)),
|
|
29
|
+
eventLogger_(std::move(eventLogger)) {}
|
|
30
|
+
|
|
31
|
+
void EventDispatcher::dispatchEvent(RawEvent&& rawEvent) const {
|
|
32
|
+
// Allows the event listener to interrupt default event dispatch
|
|
33
|
+
if (eventListeners_.willDispatchEvent(rawEvent)) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
auto eventLogger = eventLogger_.lock();
|
|
38
|
+
if (eventLogger != nullptr) {
|
|
39
|
+
rawEvent.loggingTag = eventLogger->onEventStart(
|
|
40
|
+
rawEvent.type, rawEvent.eventTarget, rawEvent.eventStartTimeStamp);
|
|
41
|
+
}
|
|
42
|
+
eventQueue_.enqueueEvent(std::move(rawEvent));
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
void EventDispatcher::experimental_flushSync() const {
|
|
46
|
+
eventQueue_.experimental_flushSync();
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
void EventDispatcher::dispatchStateUpdate(
|
|
50
|
+
StateUpdate&& stateUpdate,
|
|
51
|
+
EventQueue::UpdateMode updateMode) const {
|
|
52
|
+
eventQueue_.enqueueStateUpdate(std::move(stateUpdate), updateMode);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
void EventDispatcher::dispatchUniqueEvent(RawEvent&& rawEvent) const {
|
|
56
|
+
// Allows the event listener to interrupt default event dispatch
|
|
57
|
+
if (eventListeners_.willDispatchEvent(rawEvent)) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
eventQueue_.enqueueUniqueEvent(std::move(rawEvent));
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
void EventDispatcher::addListener(
|
|
65
|
+
std::shared_ptr<const EventListener> listener) const {
|
|
66
|
+
eventListeners_.addListener(std::move(listener));
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/*
|
|
70
|
+
* Removes provided event listener to the event dispatcher.
|
|
71
|
+
*/
|
|
72
|
+
void EventDispatcher::removeListener(
|
|
73
|
+
const std::shared_ptr<const EventListener>& listener) const {
|
|
74
|
+
eventListeners_.removeListener(listener);
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
} // namespace facebook::react
|
|
78
|
+
|
|
79
|
+
#if _MSC_VER
|
|
80
|
+
#pragma warning(pop)
|
|
81
|
+
#endif
|