mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Dedupe Accessibility enum string conversions (#53550)
Summary: Pull Request resolved: https://github.com/facebook/react-native/pull/53550 Noticed some duplication between `getDiffProps` and `accessibilityPropsConversion` Changelog: [Internal] Reviewed By: lenaic, rshest Differential Revision: D81435037 fbshipit-source-id: b2701f1aec5e647c165a0212f6180edba90fd9f9
This commit is contained in:
committed by
Facebook GitHub Bot
parent
e64dce582a
commit
46278e30e3
+2
-60
@@ -12,8 +12,6 @@
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
#include <react/renderer/debug/DebugStringConvertible.h>
|
||||
|
||||
namespace facebook::react {
|
||||
|
||||
enum class AccessibilityTraits : uint32_t {
|
||||
@@ -55,27 +53,6 @@ struct AccessibilityAction {
|
||||
std::optional<std::string> label{};
|
||||
};
|
||||
|
||||
inline std::string toString(const AccessibilityAction& accessibilityAction) {
|
||||
std::string result = accessibilityAction.name;
|
||||
if (accessibilityAction.label.has_value()) {
|
||||
result += ": '" + accessibilityAction.label.value() + "'";
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
inline std::string toString(
|
||||
std::vector<AccessibilityAction> accessibilityActions) {
|
||||
std::string result = "[";
|
||||
for (size_t i = 0; i < accessibilityActions.size(); i++) {
|
||||
result += toString(accessibilityActions[i]);
|
||||
if (i < accessibilityActions.size() - 1) {
|
||||
result += ", ";
|
||||
}
|
||||
}
|
||||
result += "]";
|
||||
return result;
|
||||
}
|
||||
|
||||
inline static bool operator==(
|
||||
const AccessibilityAction& lhs,
|
||||
const AccessibilityAction& rhs) {
|
||||
@@ -110,29 +87,6 @@ constexpr bool operator!=(
|
||||
return !(rhs == lhs);
|
||||
}
|
||||
|
||||
#if RN_DEBUG_STRING_CONVERTIBLE
|
||||
inline std::string toString(AccessibilityState::CheckedState state) {
|
||||
switch (state) {
|
||||
case AccessibilityState::Unchecked:
|
||||
return "Unchecked";
|
||||
case AccessibilityState::Checked:
|
||||
return "Checked";
|
||||
case AccessibilityState::Mixed:
|
||||
return "Mixed";
|
||||
case AccessibilityState::None:
|
||||
return "None";
|
||||
}
|
||||
}
|
||||
|
||||
inline std::string toString(const AccessibilityState& accessibilityState) {
|
||||
return "{disabled:" + toString(accessibilityState.disabled) +
|
||||
",selected:" + toString(accessibilityState.selected) +
|
||||
",checked:" + toString(accessibilityState.checked) +
|
||||
",busy:" + toString(accessibilityState.busy) +
|
||||
",expanded:" + toString(accessibilityState.expanded) + "}";
|
||||
}
|
||||
#endif
|
||||
|
||||
struct AccessibilityLabelledBy {
|
||||
std::vector<std::string> value{};
|
||||
};
|
||||
@@ -182,19 +136,7 @@ enum class AccessibilityLiveRegion : uint8_t {
|
||||
Assertive,
|
||||
};
|
||||
|
||||
inline std::string toString(
|
||||
const AccessibilityLiveRegion& accessibilityLiveRegion) {
|
||||
switch (accessibilityLiveRegion) {
|
||||
case AccessibilityLiveRegion::None:
|
||||
return "none";
|
||||
case AccessibilityLiveRegion::Polite:
|
||||
return "polite";
|
||||
case AccessibilityLiveRegion::Assertive:
|
||||
return "assertive";
|
||||
}
|
||||
}
|
||||
|
||||
enum class AccessibilityRole {
|
||||
enum class AccessibilityRole : uint8_t {
|
||||
None,
|
||||
Button,
|
||||
Dropdownlist,
|
||||
@@ -237,7 +179,7 @@ enum class AccessibilityRole {
|
||||
Iconmenu,
|
||||
};
|
||||
|
||||
enum class Role {
|
||||
enum class Role : uint8_t {
|
||||
Alert,
|
||||
Alertdialog,
|
||||
Application,
|
||||
|
||||
+56
@@ -14,6 +14,7 @@
|
||||
#include <react/renderer/components/view/AccessibilityPrimitives.h>
|
||||
#include <react/renderer/core/PropsParserContext.h>
|
||||
#include <react/renderer/core/propsConversions.h>
|
||||
#include <react/renderer/debug/DebugStringConvertible.h>
|
||||
|
||||
#include <unordered_map>
|
||||
|
||||
@@ -782,4 +783,59 @@ inline void fromRawValue(
|
||||
result = Role::None;
|
||||
}
|
||||
|
||||
inline std::string toString(AccessibilityLiveRegion accessibilityLiveRegion) {
|
||||
switch (accessibilityLiveRegion) {
|
||||
case AccessibilityLiveRegion::None:
|
||||
return "none";
|
||||
case AccessibilityLiveRegion::Polite:
|
||||
return "polite";
|
||||
case AccessibilityLiveRegion::Assertive:
|
||||
return "assertive";
|
||||
}
|
||||
}
|
||||
|
||||
#if RN_DEBUG_STRING_CONVERTIBLE
|
||||
inline std::string toString(AccessibilityState::CheckedState state) {
|
||||
switch (state) {
|
||||
case AccessibilityState::Unchecked:
|
||||
return "Unchecked";
|
||||
case AccessibilityState::Checked:
|
||||
return "Checked";
|
||||
case AccessibilityState::Mixed:
|
||||
return "Mixed";
|
||||
case AccessibilityState::None:
|
||||
return "None";
|
||||
}
|
||||
}
|
||||
|
||||
inline std::string toString(const AccessibilityAction& accessibilityAction) {
|
||||
std::string result = accessibilityAction.name;
|
||||
if (accessibilityAction.label.has_value()) {
|
||||
result += ": '" + accessibilityAction.label.value() + "'";
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
inline std::string toString(
|
||||
std::vector<AccessibilityAction> accessibilityActions) {
|
||||
std::string result = "[";
|
||||
for (size_t i = 0; i < accessibilityActions.size(); i++) {
|
||||
result += toString(accessibilityActions[i]);
|
||||
if (i < accessibilityActions.size() - 1) {
|
||||
result += ", ";
|
||||
}
|
||||
}
|
||||
result += "]";
|
||||
return result;
|
||||
}
|
||||
|
||||
inline std::string toString(const AccessibilityState& accessibilityState) {
|
||||
return "{disabled:" + toString(accessibilityState.disabled) +
|
||||
",selected:" + toString(accessibilityState.selected) +
|
||||
",checked:" + toString(accessibilityState.checked) +
|
||||
",busy:" + toString(accessibilityState.busy) +
|
||||
",expanded:" + toString(accessibilityState.expanded) + "}";
|
||||
}
|
||||
#endif
|
||||
|
||||
} // namespace facebook::react
|
||||
|
||||
@@ -848,7 +848,7 @@ inline void fromRawValue(
|
||||
react_native_expect(false);
|
||||
}
|
||||
|
||||
inline std::string toString(const PointerEventsMode& value) {
|
||||
inline std::string toString(PointerEventsMode value) {
|
||||
switch (value) {
|
||||
case PointerEventsMode::Auto:
|
||||
return "auto";
|
||||
|
||||
+3
-40
@@ -618,21 +618,7 @@ folly::dynamic HostPlatformViewProps::getDiffProps(
|
||||
}
|
||||
|
||||
if (pointerEvents != oldProps->pointerEvents) {
|
||||
std::string value;
|
||||
switch (pointerEvents) {
|
||||
case PointerEventsMode::BoxOnly:
|
||||
result["pointerEvents"] = "box-only";
|
||||
break;
|
||||
case PointerEventsMode::BoxNone:
|
||||
result["pointerEvents"] = "box-none";
|
||||
break;
|
||||
case PointerEventsMode::None:
|
||||
result["pointerEvents"] = "none";
|
||||
break;
|
||||
default:
|
||||
result["pointerEvents"] = "auto";
|
||||
break;
|
||||
}
|
||||
result["pointerEvents"] = toString(pointerEvents);
|
||||
}
|
||||
|
||||
if (hitSlop != oldProps->hitSlop) {
|
||||
@@ -917,17 +903,7 @@ folly::dynamic HostPlatformViewProps::getDiffProps(
|
||||
}
|
||||
|
||||
if (accessibilityLiveRegion != oldProps->accessibilityLiveRegion) {
|
||||
switch (accessibilityLiveRegion) {
|
||||
case AccessibilityLiveRegion::Assertive:
|
||||
result["accessibilityLiveRegion"] = "assertive";
|
||||
break;
|
||||
case AccessibilityLiveRegion::Polite:
|
||||
result["accessibilityLiveRegion"] = "polite";
|
||||
break;
|
||||
case AccessibilityLiveRegion::None:
|
||||
result["accessibilityLiveRegion"] = "none";
|
||||
break;
|
||||
}
|
||||
result["accessibilityLiveRegion"] = toString(accessibilityLiveRegion);
|
||||
}
|
||||
|
||||
if (accessibilityHint != oldProps->accessibilityHint) {
|
||||
@@ -1003,20 +979,7 @@ folly::dynamic HostPlatformViewProps::getDiffProps(
|
||||
}
|
||||
|
||||
if (importantForAccessibility != oldProps->importantForAccessibility) {
|
||||
switch (importantForAccessibility) {
|
||||
case ImportantForAccessibility::Auto:
|
||||
result["importantForAccessibility"] = "auto";
|
||||
break;
|
||||
case ImportantForAccessibility::Yes:
|
||||
result["importantForAccessibility"] = "yes";
|
||||
break;
|
||||
case ImportantForAccessibility::No:
|
||||
result["importantForAccessibility"] = "no";
|
||||
break;
|
||||
case ImportantForAccessibility::NoHideDescendants:
|
||||
result["importantForAccessibility"] = "noHideDescendants";
|
||||
break;
|
||||
}
|
||||
result["importantForAccessibility"] = toString(importantForAccessibility);
|
||||
}
|
||||
|
||||
return result;
|
||||
|
||||
Reference in New Issue
Block a user