this repo has no description
1 2/** 3 * This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen). 4 * 5 * Do not edit this file as changes may cause incorrect behavior and will be lost 6 * once the code is regenerated. 7 * 8 * @generated by codegen project: GeneratePropsH.js 9 */ 10#pragma once 11 12#include <react/renderer/components/view/ViewProps.h> 13#include <react/renderer/core/PropsParserContext.h> 14#include <react/renderer/core/propsConversions.h> 15#include <react/renderer/graphics/Color.h> 16#include <react/renderer/imagemanager/primitives.h> 17#include <vector> 18 19namespace facebook::react { 20 21enum class RNSBottomTabsTabBarItemLabelVisibilityMode { Auto, Selected, Labeled, Unlabeled }; 22 23static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSBottomTabsTabBarItemLabelVisibilityMode &result) { 24 auto string = (std::string)value; 25 if (string == "auto") { result = RNSBottomTabsTabBarItemLabelVisibilityMode::Auto; return; } 26 if (string == "selected") { result = RNSBottomTabsTabBarItemLabelVisibilityMode::Selected; return; } 27 if (string == "labeled") { result = RNSBottomTabsTabBarItemLabelVisibilityMode::Labeled; return; } 28 if (string == "unlabeled") { result = RNSBottomTabsTabBarItemLabelVisibilityMode::Unlabeled; return; } 29 abort(); 30} 31 32static inline std::string toString(const RNSBottomTabsTabBarItemLabelVisibilityMode &value) { 33 switch (value) { 34 case RNSBottomTabsTabBarItemLabelVisibilityMode::Auto: return "auto"; 35 case RNSBottomTabsTabBarItemLabelVisibilityMode::Selected: return "selected"; 36 case RNSBottomTabsTabBarItemLabelVisibilityMode::Labeled: return "labeled"; 37 case RNSBottomTabsTabBarItemLabelVisibilityMode::Unlabeled: return "unlabeled"; 38 } 39} 40 41#ifdef RN_SERIALIZABLE_STATE 42static inline folly::dynamic toDynamic(const RNSBottomTabsTabBarItemLabelVisibilityMode &value) { 43 return toString(value); 44} 45#endif 46enum class RNSBottomTabsTabBarMinimizeBehavior { Automatic, Never, OnScrollDown, OnScrollUp }; 47 48static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSBottomTabsTabBarMinimizeBehavior &result) { 49 auto string = (std::string)value; 50 if (string == "automatic") { result = RNSBottomTabsTabBarMinimizeBehavior::Automatic; return; } 51 if (string == "never") { result = RNSBottomTabsTabBarMinimizeBehavior::Never; return; } 52 if (string == "onScrollDown") { result = RNSBottomTabsTabBarMinimizeBehavior::OnScrollDown; return; } 53 if (string == "onScrollUp") { result = RNSBottomTabsTabBarMinimizeBehavior::OnScrollUp; return; } 54 abort(); 55} 56 57static inline std::string toString(const RNSBottomTabsTabBarMinimizeBehavior &value) { 58 switch (value) { 59 case RNSBottomTabsTabBarMinimizeBehavior::Automatic: return "automatic"; 60 case RNSBottomTabsTabBarMinimizeBehavior::Never: return "never"; 61 case RNSBottomTabsTabBarMinimizeBehavior::OnScrollDown: return "onScrollDown"; 62 case RNSBottomTabsTabBarMinimizeBehavior::OnScrollUp: return "onScrollUp"; 63 } 64} 65 66#ifdef RN_SERIALIZABLE_STATE 67static inline folly::dynamic toDynamic(const RNSBottomTabsTabBarMinimizeBehavior &value) { 68 return toString(value); 69} 70#endif 71 72class RNSBottomTabsProps final : public ViewProps { 73 public: 74 RNSBottomTabsProps() = default; 75 RNSBottomTabsProps(const PropsParserContext& context, const RNSBottomTabsProps &sourceProps, const RawProps &rawProps); 76 77#pragma mark - Props 78 79 SharedColor tabBarBackgroundColor{}; 80 std::string tabBarItemTitleFontFamily{}; 81 Float tabBarItemTitleFontSize{0.0}; 82 Float tabBarItemTitleFontSizeActive{0.0}; 83 std::string tabBarItemTitleFontWeight{}; 84 std::string tabBarItemTitleFontStyle{}; 85 SharedColor tabBarItemTitleFontColor{}; 86 SharedColor tabBarItemTitleFontColorActive{}; 87 SharedColor tabBarItemIconColor{}; 88 SharedColor tabBarItemIconColorActive{}; 89 SharedColor tabBarItemActiveIndicatorColor{}; 90 bool tabBarItemActiveIndicatorEnabled{true}; 91 SharedColor tabBarItemRippleColor{}; 92 RNSBottomTabsTabBarItemLabelVisibilityMode tabBarItemLabelVisibilityMode{RNSBottomTabsTabBarItemLabelVisibilityMode::Auto}; 93 SharedColor tabBarTintColor{}; 94 RNSBottomTabsTabBarMinimizeBehavior tabBarMinimizeBehavior{RNSBottomTabsTabBarMinimizeBehavior::Automatic}; 95 bool controlNavigationStateInJS{false}; 96 97 #ifdef RN_SERIALIZABLE_STATE 98 ComponentName getDiffPropsImplementationTarget() const override; 99 100 folly::dynamic getDiffProps(const Props* prevProps) const override; 101 #endif 102}; 103 104enum class RNSBottomTabsScreenOrientation { Inherit, All, AllButUpsideDown, Portrait, PortraitUp, PortraitDown, Landscape, LandscapeLeft, LandscapeRight }; 105 106static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSBottomTabsScreenOrientation &result) { 107 auto string = (std::string)value; 108 if (string == "inherit") { result = RNSBottomTabsScreenOrientation::Inherit; return; } 109 if (string == "all") { result = RNSBottomTabsScreenOrientation::All; return; } 110 if (string == "allButUpsideDown") { result = RNSBottomTabsScreenOrientation::AllButUpsideDown; return; } 111 if (string == "portrait") { result = RNSBottomTabsScreenOrientation::Portrait; return; } 112 if (string == "portraitUp") { result = RNSBottomTabsScreenOrientation::PortraitUp; return; } 113 if (string == "portraitDown") { result = RNSBottomTabsScreenOrientation::PortraitDown; return; } 114 if (string == "landscape") { result = RNSBottomTabsScreenOrientation::Landscape; return; } 115 if (string == "landscapeLeft") { result = RNSBottomTabsScreenOrientation::LandscapeLeft; return; } 116 if (string == "landscapeRight") { result = RNSBottomTabsScreenOrientation::LandscapeRight; return; } 117 abort(); 118} 119 120static inline std::string toString(const RNSBottomTabsScreenOrientation &value) { 121 switch (value) { 122 case RNSBottomTabsScreenOrientation::Inherit: return "inherit"; 123 case RNSBottomTabsScreenOrientation::All: return "all"; 124 case RNSBottomTabsScreenOrientation::AllButUpsideDown: return "allButUpsideDown"; 125 case RNSBottomTabsScreenOrientation::Portrait: return "portrait"; 126 case RNSBottomTabsScreenOrientation::PortraitUp: return "portraitUp"; 127 case RNSBottomTabsScreenOrientation::PortraitDown: return "portraitDown"; 128 case RNSBottomTabsScreenOrientation::Landscape: return "landscape"; 129 case RNSBottomTabsScreenOrientation::LandscapeLeft: return "landscapeLeft"; 130 case RNSBottomTabsScreenOrientation::LandscapeRight: return "landscapeRight"; 131 } 132} 133 134#ifdef RN_SERIALIZABLE_STATE 135static inline folly::dynamic toDynamic(const RNSBottomTabsScreenOrientation &value) { 136 return toString(value); 137} 138#endif 139enum class RNSBottomTabsScreenIconType { Image, Template, SfSymbol }; 140 141static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSBottomTabsScreenIconType &result) { 142 auto string = (std::string)value; 143 if (string == "image") { result = RNSBottomTabsScreenIconType::Image; return; } 144 if (string == "template") { result = RNSBottomTabsScreenIconType::Template; return; } 145 if (string == "sfSymbol") { result = RNSBottomTabsScreenIconType::SfSymbol; return; } 146 abort(); 147} 148 149static inline std::string toString(const RNSBottomTabsScreenIconType &value) { 150 switch (value) { 151 case RNSBottomTabsScreenIconType::Image: return "image"; 152 case RNSBottomTabsScreenIconType::Template: return "template"; 153 case RNSBottomTabsScreenIconType::SfSymbol: return "sfSymbol"; 154 } 155} 156 157#ifdef RN_SERIALIZABLE_STATE 158static inline folly::dynamic toDynamic(const RNSBottomTabsScreenIconType &value) { 159 return toString(value); 160} 161#endif 162enum class RNSBottomTabsScreenSystemItem { None, Bookmarks, Contacts, Downloads, Favorites, Featured, History, More, MostRecent, MostViewed, Recents, Search, TopRated }; 163 164static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSBottomTabsScreenSystemItem &result) { 165 auto string = (std::string)value; 166 if (string == "none") { result = RNSBottomTabsScreenSystemItem::None; return; } 167 if (string == "bookmarks") { result = RNSBottomTabsScreenSystemItem::Bookmarks; return; } 168 if (string == "contacts") { result = RNSBottomTabsScreenSystemItem::Contacts; return; } 169 if (string == "downloads") { result = RNSBottomTabsScreenSystemItem::Downloads; return; } 170 if (string == "favorites") { result = RNSBottomTabsScreenSystemItem::Favorites; return; } 171 if (string == "featured") { result = RNSBottomTabsScreenSystemItem::Featured; return; } 172 if (string == "history") { result = RNSBottomTabsScreenSystemItem::History; return; } 173 if (string == "more") { result = RNSBottomTabsScreenSystemItem::More; return; } 174 if (string == "mostRecent") { result = RNSBottomTabsScreenSystemItem::MostRecent; return; } 175 if (string == "mostViewed") { result = RNSBottomTabsScreenSystemItem::MostViewed; return; } 176 if (string == "recents") { result = RNSBottomTabsScreenSystemItem::Recents; return; } 177 if (string == "search") { result = RNSBottomTabsScreenSystemItem::Search; return; } 178 if (string == "topRated") { result = RNSBottomTabsScreenSystemItem::TopRated; return; } 179 abort(); 180} 181 182static inline std::string toString(const RNSBottomTabsScreenSystemItem &value) { 183 switch (value) { 184 case RNSBottomTabsScreenSystemItem::None: return "none"; 185 case RNSBottomTabsScreenSystemItem::Bookmarks: return "bookmarks"; 186 case RNSBottomTabsScreenSystemItem::Contacts: return "contacts"; 187 case RNSBottomTabsScreenSystemItem::Downloads: return "downloads"; 188 case RNSBottomTabsScreenSystemItem::Favorites: return "favorites"; 189 case RNSBottomTabsScreenSystemItem::Featured: return "featured"; 190 case RNSBottomTabsScreenSystemItem::History: return "history"; 191 case RNSBottomTabsScreenSystemItem::More: return "more"; 192 case RNSBottomTabsScreenSystemItem::MostRecent: return "mostRecent"; 193 case RNSBottomTabsScreenSystemItem::MostViewed: return "mostViewed"; 194 case RNSBottomTabsScreenSystemItem::Recents: return "recents"; 195 case RNSBottomTabsScreenSystemItem::Search: return "search"; 196 case RNSBottomTabsScreenSystemItem::TopRated: return "topRated"; 197 } 198} 199 200#ifdef RN_SERIALIZABLE_STATE 201static inline folly::dynamic toDynamic(const RNSBottomTabsScreenSystemItem &value) { 202 return toString(value); 203} 204#endif 205struct RNSBottomTabsScreenSpecialEffectsRepeatedTabSelectionStruct { 206 bool popToRoot{true}; 207 bool scrollToTop{true}; 208 209#ifdef RN_SERIALIZABLE_STATE 210 bool operator==(const RNSBottomTabsScreenSpecialEffectsRepeatedTabSelectionStruct&) const = default; 211 212 folly::dynamic toDynamic() const { 213 folly::dynamic result = folly::dynamic::object(); 214 result["popToRoot"] = popToRoot; 215 result["scrollToTop"] = scrollToTop; 216 return result; 217 } 218#endif 219}; 220 221static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSBottomTabsScreenSpecialEffectsRepeatedTabSelectionStruct &result) { 222 auto map = (std::unordered_map<std::string, RawValue>)value; 223 224 auto tmp_popToRoot = map.find("popToRoot"); 225 if (tmp_popToRoot != map.end()) { 226 fromRawValue(context, tmp_popToRoot->second, result.popToRoot); 227 } 228 auto tmp_scrollToTop = map.find("scrollToTop"); 229 if (tmp_scrollToTop != map.end()) { 230 fromRawValue(context, tmp_scrollToTop->second, result.scrollToTop); 231 } 232} 233 234static inline std::string toString(const RNSBottomTabsScreenSpecialEffectsRepeatedTabSelectionStruct &value) { 235 return "[Object RNSBottomTabsScreenSpecialEffectsRepeatedTabSelectionStruct]"; 236} 237 238#ifdef RN_SERIALIZABLE_STATE 239static inline folly::dynamic toDynamic(const RNSBottomTabsScreenSpecialEffectsRepeatedTabSelectionStruct &value) { 240 return value.toDynamic(); 241} 242#endif 243 244struct RNSBottomTabsScreenSpecialEffectsStruct { 245 RNSBottomTabsScreenSpecialEffectsRepeatedTabSelectionStruct repeatedTabSelection{}; 246 247#ifdef RN_SERIALIZABLE_STATE 248 bool operator==(const RNSBottomTabsScreenSpecialEffectsStruct&) const = default; 249 250 folly::dynamic toDynamic() const { 251 folly::dynamic result = folly::dynamic::object(); 252 result["repeatedTabSelection"] = ::facebook::react::toDynamic(repeatedTabSelection); 253 return result; 254 } 255#endif 256}; 257 258static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSBottomTabsScreenSpecialEffectsStruct &result) { 259 auto map = (std::unordered_map<std::string, RawValue>)value; 260 261 auto tmp_repeatedTabSelection = map.find("repeatedTabSelection"); 262 if (tmp_repeatedTabSelection != map.end()) { 263 fromRawValue(context, tmp_repeatedTabSelection->second, result.repeatedTabSelection); 264 } 265} 266 267static inline std::string toString(const RNSBottomTabsScreenSpecialEffectsStruct &value) { 268 return "[Object RNSBottomTabsScreenSpecialEffectsStruct]"; 269} 270 271#ifdef RN_SERIALIZABLE_STATE 272static inline folly::dynamic toDynamic(const RNSBottomTabsScreenSpecialEffectsStruct &value) { 273 return value.toDynamic(); 274} 275#endif 276class RNSBottomTabsScreenProps final : public ViewProps { 277 public: 278 RNSBottomTabsScreenProps() = default; 279 RNSBottomTabsScreenProps(const PropsParserContext& context, const RNSBottomTabsScreenProps &sourceProps, const RawProps &rawProps); 280 281#pragma mark - Props 282 283 bool isFocused{false}; 284 std::string tabKey{}; 285 std::string title{}; 286 std::string badgeValue{}; 287 RNSBottomTabsScreenOrientation orientation{RNSBottomTabsScreenOrientation::Inherit}; 288 std::string iconResourceName{}; 289 ImageSource iconResource{}; 290 SharedColor tabBarItemBadgeTextColor{}; 291 SharedColor tabBarItemBadgeBackgroundColor{}; 292 folly::dynamic standardAppearance{}; 293 folly::dynamic scrollEdgeAppearance{}; 294 RNSBottomTabsScreenIconType iconType{RNSBottomTabsScreenIconType::SfSymbol}; 295 ImageSource iconImageSource{}; 296 std::string iconSfSymbolName{}; 297 ImageSource selectedIconImageSource{}; 298 std::string selectedIconSfSymbolName{}; 299 RNSBottomTabsScreenSystemItem systemItem{RNSBottomTabsScreenSystemItem::None}; 300 RNSBottomTabsScreenSpecialEffectsStruct specialEffects{}; 301 bool overrideScrollViewContentInsetAdjustmentBehavior{true}; 302 303 #ifdef RN_SERIALIZABLE_STATE 304 ComponentName getDiffPropsImplementationTarget() const override; 305 306 folly::dynamic getDiffProps(const Props* prevProps) const override; 307 #endif 308}; 309 310class RNSFullWindowOverlayProps final : public ViewProps { 311 public: 312 RNSFullWindowOverlayProps() = default; 313 RNSFullWindowOverlayProps(const PropsParserContext& context, const RNSFullWindowOverlayProps &sourceProps, const RawProps &rawProps); 314 315#pragma mark - Props 316 317 bool accessibilityContainerViewIsModal{true}; 318 319 #ifdef RN_SERIALIZABLE_STATE 320 ComponentName getDiffPropsImplementationTarget() const override; 321 322 folly::dynamic getDiffProps(const Props* prevProps) const override; 323 #endif 324}; 325 326class RNSScreenStackHostProps final : public ViewProps { 327 public: 328 RNSScreenStackHostProps() = default; 329 RNSScreenStackHostProps(const PropsParserContext& context, const RNSScreenStackHostProps &sourceProps, const RawProps &rawProps); 330 331#pragma mark - Props 332 333 334 335 #ifdef RN_SERIALIZABLE_STATE 336 ComponentName getDiffPropsImplementationTarget() const override; 337 338 folly::dynamic getDiffProps(const Props* prevProps) const override; 339 #endif 340}; 341 342enum class RNSSplitViewHostPreferredDisplayMode { Automatic, SecondaryOnly, OneBesideSecondary, OneOverSecondary, TwoBesideSecondary, TwoOverSecondary, TwoDisplaceSecondary }; 343 344static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSSplitViewHostPreferredDisplayMode &result) { 345 auto string = (std::string)value; 346 if (string == "automatic") { result = RNSSplitViewHostPreferredDisplayMode::Automatic; return; } 347 if (string == "secondaryOnly") { result = RNSSplitViewHostPreferredDisplayMode::SecondaryOnly; return; } 348 if (string == "oneBesideSecondary") { result = RNSSplitViewHostPreferredDisplayMode::OneBesideSecondary; return; } 349 if (string == "oneOverSecondary") { result = RNSSplitViewHostPreferredDisplayMode::OneOverSecondary; return; } 350 if (string == "twoBesideSecondary") { result = RNSSplitViewHostPreferredDisplayMode::TwoBesideSecondary; return; } 351 if (string == "twoOverSecondary") { result = RNSSplitViewHostPreferredDisplayMode::TwoOverSecondary; return; } 352 if (string == "twoDisplaceSecondary") { result = RNSSplitViewHostPreferredDisplayMode::TwoDisplaceSecondary; return; } 353 abort(); 354} 355 356static inline std::string toString(const RNSSplitViewHostPreferredDisplayMode &value) { 357 switch (value) { 358 case RNSSplitViewHostPreferredDisplayMode::Automatic: return "automatic"; 359 case RNSSplitViewHostPreferredDisplayMode::SecondaryOnly: return "secondaryOnly"; 360 case RNSSplitViewHostPreferredDisplayMode::OneBesideSecondary: return "oneBesideSecondary"; 361 case RNSSplitViewHostPreferredDisplayMode::OneOverSecondary: return "oneOverSecondary"; 362 case RNSSplitViewHostPreferredDisplayMode::TwoBesideSecondary: return "twoBesideSecondary"; 363 case RNSSplitViewHostPreferredDisplayMode::TwoOverSecondary: return "twoOverSecondary"; 364 case RNSSplitViewHostPreferredDisplayMode::TwoDisplaceSecondary: return "twoDisplaceSecondary"; 365 } 366} 367 368#ifdef RN_SERIALIZABLE_STATE 369static inline folly::dynamic toDynamic(const RNSSplitViewHostPreferredDisplayMode &value) { 370 return toString(value); 371} 372#endif 373enum class RNSSplitViewHostPreferredSplitBehavior { Automatic, Displace, Overlay, Tile }; 374 375static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSSplitViewHostPreferredSplitBehavior &result) { 376 auto string = (std::string)value; 377 if (string == "automatic") { result = RNSSplitViewHostPreferredSplitBehavior::Automatic; return; } 378 if (string == "displace") { result = RNSSplitViewHostPreferredSplitBehavior::Displace; return; } 379 if (string == "overlay") { result = RNSSplitViewHostPreferredSplitBehavior::Overlay; return; } 380 if (string == "tile") { result = RNSSplitViewHostPreferredSplitBehavior::Tile; return; } 381 abort(); 382} 383 384static inline std::string toString(const RNSSplitViewHostPreferredSplitBehavior &value) { 385 switch (value) { 386 case RNSSplitViewHostPreferredSplitBehavior::Automatic: return "automatic"; 387 case RNSSplitViewHostPreferredSplitBehavior::Displace: return "displace"; 388 case RNSSplitViewHostPreferredSplitBehavior::Overlay: return "overlay"; 389 case RNSSplitViewHostPreferredSplitBehavior::Tile: return "tile"; 390 } 391} 392 393#ifdef RN_SERIALIZABLE_STATE 394static inline folly::dynamic toDynamic(const RNSSplitViewHostPreferredSplitBehavior &value) { 395 return toString(value); 396} 397#endif 398enum class RNSSplitViewHostPrimaryEdge { Leading, Trailing }; 399 400static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSSplitViewHostPrimaryEdge &result) { 401 auto string = (std::string)value; 402 if (string == "leading") { result = RNSSplitViewHostPrimaryEdge::Leading; return; } 403 if (string == "trailing") { result = RNSSplitViewHostPrimaryEdge::Trailing; return; } 404 abort(); 405} 406 407static inline std::string toString(const RNSSplitViewHostPrimaryEdge &value) { 408 switch (value) { 409 case RNSSplitViewHostPrimaryEdge::Leading: return "leading"; 410 case RNSSplitViewHostPrimaryEdge::Trailing: return "trailing"; 411 } 412} 413 414#ifdef RN_SERIALIZABLE_STATE 415static inline folly::dynamic toDynamic(const RNSSplitViewHostPrimaryEdge &value) { 416 return toString(value); 417} 418#endif 419enum class RNSSplitViewHostDisplayModeButtonVisibility { Always, Automatic, Never }; 420 421static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSSplitViewHostDisplayModeButtonVisibility &result) { 422 auto string = (std::string)value; 423 if (string == "always") { result = RNSSplitViewHostDisplayModeButtonVisibility::Always; return; } 424 if (string == "automatic") { result = RNSSplitViewHostDisplayModeButtonVisibility::Automatic; return; } 425 if (string == "never") { result = RNSSplitViewHostDisplayModeButtonVisibility::Never; return; } 426 abort(); 427} 428 429static inline std::string toString(const RNSSplitViewHostDisplayModeButtonVisibility &value) { 430 switch (value) { 431 case RNSSplitViewHostDisplayModeButtonVisibility::Always: return "always"; 432 case RNSSplitViewHostDisplayModeButtonVisibility::Automatic: return "automatic"; 433 case RNSSplitViewHostDisplayModeButtonVisibility::Never: return "never"; 434 } 435} 436 437#ifdef RN_SERIALIZABLE_STATE 438static inline folly::dynamic toDynamic(const RNSSplitViewHostDisplayModeButtonVisibility &value) { 439 return toString(value); 440} 441#endif 442enum class RNSSplitViewHostOrientation { Inherit, All, AllButUpsideDown, Portrait, PortraitUp, PortraitDown, Landscape, LandscapeLeft, LandscapeRight }; 443 444static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSSplitViewHostOrientation &result) { 445 auto string = (std::string)value; 446 if (string == "inherit") { result = RNSSplitViewHostOrientation::Inherit; return; } 447 if (string == "all") { result = RNSSplitViewHostOrientation::All; return; } 448 if (string == "allButUpsideDown") { result = RNSSplitViewHostOrientation::AllButUpsideDown; return; } 449 if (string == "portrait") { result = RNSSplitViewHostOrientation::Portrait; return; } 450 if (string == "portraitUp") { result = RNSSplitViewHostOrientation::PortraitUp; return; } 451 if (string == "portraitDown") { result = RNSSplitViewHostOrientation::PortraitDown; return; } 452 if (string == "landscape") { result = RNSSplitViewHostOrientation::Landscape; return; } 453 if (string == "landscapeLeft") { result = RNSSplitViewHostOrientation::LandscapeLeft; return; } 454 if (string == "landscapeRight") { result = RNSSplitViewHostOrientation::LandscapeRight; return; } 455 abort(); 456} 457 458static inline std::string toString(const RNSSplitViewHostOrientation &value) { 459 switch (value) { 460 case RNSSplitViewHostOrientation::Inherit: return "inherit"; 461 case RNSSplitViewHostOrientation::All: return "all"; 462 case RNSSplitViewHostOrientation::AllButUpsideDown: return "allButUpsideDown"; 463 case RNSSplitViewHostOrientation::Portrait: return "portrait"; 464 case RNSSplitViewHostOrientation::PortraitUp: return "portraitUp"; 465 case RNSSplitViewHostOrientation::PortraitDown: return "portraitDown"; 466 case RNSSplitViewHostOrientation::Landscape: return "landscape"; 467 case RNSSplitViewHostOrientation::LandscapeLeft: return "landscapeLeft"; 468 case RNSSplitViewHostOrientation::LandscapeRight: return "landscapeRight"; 469 } 470} 471 472#ifdef RN_SERIALIZABLE_STATE 473static inline folly::dynamic toDynamic(const RNSSplitViewHostOrientation &value) { 474 return toString(value); 475} 476#endif 477struct RNSSplitViewHostColumnMetricsStruct { 478 Float minimumPrimaryColumnWidth{-1.0}; 479 Float maximumPrimaryColumnWidth{-1.0}; 480 Float preferredPrimaryColumnWidthOrFraction{-1.0}; 481 Float minimumSupplementaryColumnWidth{-1.0}; 482 Float maximumSupplementaryColumnWidth{-1.0}; 483 Float preferredSupplementaryColumnWidthOrFraction{-1.0}; 484 Float minimumSecondaryColumnWidth{-1.0}; 485 Float preferredSecondaryColumnWidthOrFraction{-1.0}; 486 Float minimumInspectorColumnWidth{-1.0}; 487 Float maximumInspectorColumnWidth{-1.0}; 488 Float preferredInspectorColumnWidthOrFraction{-1.0}; 489 490#ifdef RN_SERIALIZABLE_STATE 491 bool operator==(const RNSSplitViewHostColumnMetricsStruct&) const = default; 492 493 folly::dynamic toDynamic() const { 494 folly::dynamic result = folly::dynamic::object(); 495 result["minimumPrimaryColumnWidth"] = minimumPrimaryColumnWidth; 496 result["maximumPrimaryColumnWidth"] = maximumPrimaryColumnWidth; 497 result["preferredPrimaryColumnWidthOrFraction"] = preferredPrimaryColumnWidthOrFraction; 498 result["minimumSupplementaryColumnWidth"] = minimumSupplementaryColumnWidth; 499 result["maximumSupplementaryColumnWidth"] = maximumSupplementaryColumnWidth; 500 result["preferredSupplementaryColumnWidthOrFraction"] = preferredSupplementaryColumnWidthOrFraction; 501 result["minimumSecondaryColumnWidth"] = minimumSecondaryColumnWidth; 502 result["preferredSecondaryColumnWidthOrFraction"] = preferredSecondaryColumnWidthOrFraction; 503 result["minimumInspectorColumnWidth"] = minimumInspectorColumnWidth; 504 result["maximumInspectorColumnWidth"] = maximumInspectorColumnWidth; 505 result["preferredInspectorColumnWidthOrFraction"] = preferredInspectorColumnWidthOrFraction; 506 return result; 507 } 508#endif 509}; 510 511static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSSplitViewHostColumnMetricsStruct &result) { 512 auto map = (std::unordered_map<std::string, RawValue>)value; 513 514 auto tmp_minimumPrimaryColumnWidth = map.find("minimumPrimaryColumnWidth"); 515 if (tmp_minimumPrimaryColumnWidth != map.end()) { 516 fromRawValue(context, tmp_minimumPrimaryColumnWidth->second, result.minimumPrimaryColumnWidth); 517 } 518 auto tmp_maximumPrimaryColumnWidth = map.find("maximumPrimaryColumnWidth"); 519 if (tmp_maximumPrimaryColumnWidth != map.end()) { 520 fromRawValue(context, tmp_maximumPrimaryColumnWidth->second, result.maximumPrimaryColumnWidth); 521 } 522 auto tmp_preferredPrimaryColumnWidthOrFraction = map.find("preferredPrimaryColumnWidthOrFraction"); 523 if (tmp_preferredPrimaryColumnWidthOrFraction != map.end()) { 524 fromRawValue(context, tmp_preferredPrimaryColumnWidthOrFraction->second, result.preferredPrimaryColumnWidthOrFraction); 525 } 526 auto tmp_minimumSupplementaryColumnWidth = map.find("minimumSupplementaryColumnWidth"); 527 if (tmp_minimumSupplementaryColumnWidth != map.end()) { 528 fromRawValue(context, tmp_minimumSupplementaryColumnWidth->second, result.minimumSupplementaryColumnWidth); 529 } 530 auto tmp_maximumSupplementaryColumnWidth = map.find("maximumSupplementaryColumnWidth"); 531 if (tmp_maximumSupplementaryColumnWidth != map.end()) { 532 fromRawValue(context, tmp_maximumSupplementaryColumnWidth->second, result.maximumSupplementaryColumnWidth); 533 } 534 auto tmp_preferredSupplementaryColumnWidthOrFraction = map.find("preferredSupplementaryColumnWidthOrFraction"); 535 if (tmp_preferredSupplementaryColumnWidthOrFraction != map.end()) { 536 fromRawValue(context, tmp_preferredSupplementaryColumnWidthOrFraction->second, result.preferredSupplementaryColumnWidthOrFraction); 537 } 538 auto tmp_minimumSecondaryColumnWidth = map.find("minimumSecondaryColumnWidth"); 539 if (tmp_minimumSecondaryColumnWidth != map.end()) { 540 fromRawValue(context, tmp_minimumSecondaryColumnWidth->second, result.minimumSecondaryColumnWidth); 541 } 542 auto tmp_preferredSecondaryColumnWidthOrFraction = map.find("preferredSecondaryColumnWidthOrFraction"); 543 if (tmp_preferredSecondaryColumnWidthOrFraction != map.end()) { 544 fromRawValue(context, tmp_preferredSecondaryColumnWidthOrFraction->second, result.preferredSecondaryColumnWidthOrFraction); 545 } 546 auto tmp_minimumInspectorColumnWidth = map.find("minimumInspectorColumnWidth"); 547 if (tmp_minimumInspectorColumnWidth != map.end()) { 548 fromRawValue(context, tmp_minimumInspectorColumnWidth->second, result.minimumInspectorColumnWidth); 549 } 550 auto tmp_maximumInspectorColumnWidth = map.find("maximumInspectorColumnWidth"); 551 if (tmp_maximumInspectorColumnWidth != map.end()) { 552 fromRawValue(context, tmp_maximumInspectorColumnWidth->second, result.maximumInspectorColumnWidth); 553 } 554 auto tmp_preferredInspectorColumnWidthOrFraction = map.find("preferredInspectorColumnWidthOrFraction"); 555 if (tmp_preferredInspectorColumnWidthOrFraction != map.end()) { 556 fromRawValue(context, tmp_preferredInspectorColumnWidthOrFraction->second, result.preferredInspectorColumnWidthOrFraction); 557 } 558} 559 560static inline std::string toString(const RNSSplitViewHostColumnMetricsStruct &value) { 561 return "[Object RNSSplitViewHostColumnMetricsStruct]"; 562} 563 564#ifdef RN_SERIALIZABLE_STATE 565static inline folly::dynamic toDynamic(const RNSSplitViewHostColumnMetricsStruct &value) { 566 return value.toDynamic(); 567} 568#endif 569class RNSSplitViewHostProps final : public ViewProps { 570 public: 571 RNSSplitViewHostProps() = default; 572 RNSSplitViewHostProps(const PropsParserContext& context, const RNSSplitViewHostProps &sourceProps, const RawProps &rawProps); 573 574#pragma mark - Props 575 576 RNSSplitViewHostPreferredDisplayMode preferredDisplayMode{RNSSplitViewHostPreferredDisplayMode::Automatic}; 577 RNSSplitViewHostPreferredSplitBehavior preferredSplitBehavior{RNSSplitViewHostPreferredSplitBehavior::Automatic}; 578 RNSSplitViewHostPrimaryEdge primaryEdge{RNSSplitViewHostPrimaryEdge::Leading}; 579 bool showSecondaryToggleButton{false}; 580 RNSSplitViewHostDisplayModeButtonVisibility displayModeButtonVisibility{RNSSplitViewHostDisplayModeButtonVisibility::Automatic}; 581 RNSSplitViewHostColumnMetricsStruct columnMetrics{}; 582 RNSSplitViewHostOrientation orientation{RNSSplitViewHostOrientation::Inherit}; 583 bool presentsWithGesture{true}; 584 bool showInspector{false}; 585 586 #ifdef RN_SERIALIZABLE_STATE 587 ComponentName getDiffPropsImplementationTarget() const override; 588 589 folly::dynamic getDiffProps(const Props* prevProps) const override; 590 #endif 591}; 592 593enum class RNSSplitViewScreenColumnType { Column, Inspector }; 594 595static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSSplitViewScreenColumnType &result) { 596 auto string = (std::string)value; 597 if (string == "column") { result = RNSSplitViewScreenColumnType::Column; return; } 598 if (string == "inspector") { result = RNSSplitViewScreenColumnType::Inspector; return; } 599 abort(); 600} 601 602static inline std::string toString(const RNSSplitViewScreenColumnType &value) { 603 switch (value) { 604 case RNSSplitViewScreenColumnType::Column: return "column"; 605 case RNSSplitViewScreenColumnType::Inspector: return "inspector"; 606 } 607} 608 609#ifdef RN_SERIALIZABLE_STATE 610static inline folly::dynamic toDynamic(const RNSSplitViewScreenColumnType &value) { 611 return toString(value); 612} 613#endif 614 615class RNSSplitViewScreenProps final : public ViewProps { 616 public: 617 RNSSplitViewScreenProps() = default; 618 RNSSplitViewScreenProps(const PropsParserContext& context, const RNSSplitViewScreenProps &sourceProps, const RawProps &rawProps); 619 620#pragma mark - Props 621 622 RNSSplitViewScreenColumnType columnType{RNSSplitViewScreenColumnType::Column}; 623 624 #ifdef RN_SERIALIZABLE_STATE 625 ComponentName getDiffPropsImplementationTarget() const override; 626 627 folly::dynamic getDiffProps(const Props* prevProps) const override; 628 #endif 629}; 630 631class RNSStackScreenProps final : public ViewProps { 632 public: 633 RNSStackScreenProps() = default; 634 RNSStackScreenProps(const PropsParserContext& context, const RNSStackScreenProps &sourceProps, const RawProps &rawProps); 635 636#pragma mark - Props 637 638 int maxLifecycleState{0}; 639 std::string screenKey{}; 640 641 #ifdef RN_SERIALIZABLE_STATE 642 ComponentName getDiffPropsImplementationTarget() const override; 643 644 folly::dynamic getDiffProps(const Props* prevProps) const override; 645 #endif 646}; 647 648enum class RNSModalScreenStackPresentation { Push, Modal, TransparentModal, FullScreenModal, FormSheet, PageSheet, ContainedModal, ContainedTransparentModal }; 649 650static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSModalScreenStackPresentation &result) { 651 auto string = (std::string)value; 652 if (string == "push") { result = RNSModalScreenStackPresentation::Push; return; } 653 if (string == "modal") { result = RNSModalScreenStackPresentation::Modal; return; } 654 if (string == "transparentModal") { result = RNSModalScreenStackPresentation::TransparentModal; return; } 655 if (string == "fullScreenModal") { result = RNSModalScreenStackPresentation::FullScreenModal; return; } 656 if (string == "formSheet") { result = RNSModalScreenStackPresentation::FormSheet; return; } 657 if (string == "pageSheet") { result = RNSModalScreenStackPresentation::PageSheet; return; } 658 if (string == "containedModal") { result = RNSModalScreenStackPresentation::ContainedModal; return; } 659 if (string == "containedTransparentModal") { result = RNSModalScreenStackPresentation::ContainedTransparentModal; return; } 660 abort(); 661} 662 663static inline std::string toString(const RNSModalScreenStackPresentation &value) { 664 switch (value) { 665 case RNSModalScreenStackPresentation::Push: return "push"; 666 case RNSModalScreenStackPresentation::Modal: return "modal"; 667 case RNSModalScreenStackPresentation::TransparentModal: return "transparentModal"; 668 case RNSModalScreenStackPresentation::FullScreenModal: return "fullScreenModal"; 669 case RNSModalScreenStackPresentation::FormSheet: return "formSheet"; 670 case RNSModalScreenStackPresentation::PageSheet: return "pageSheet"; 671 case RNSModalScreenStackPresentation::ContainedModal: return "containedModal"; 672 case RNSModalScreenStackPresentation::ContainedTransparentModal: return "containedTransparentModal"; 673 } 674} 675 676#ifdef RN_SERIALIZABLE_STATE 677static inline folly::dynamic toDynamic(const RNSModalScreenStackPresentation &value) { 678 return toString(value); 679} 680#endif 681enum class RNSModalScreenStackAnimation { Default, Flip, Simple_push, None, Fade, Slide_from_right, Slide_from_left, Slide_from_bottom, Fade_from_bottom, Ios_from_right, Ios_from_left }; 682 683static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSModalScreenStackAnimation &result) { 684 auto string = (std::string)value; 685 if (string == "default") { result = RNSModalScreenStackAnimation::Default; return; } 686 if (string == "flip") { result = RNSModalScreenStackAnimation::Flip; return; } 687 if (string == "simple_push") { result = RNSModalScreenStackAnimation::Simple_push; return; } 688 if (string == "none") { result = RNSModalScreenStackAnimation::None; return; } 689 if (string == "fade") { result = RNSModalScreenStackAnimation::Fade; return; } 690 if (string == "slide_from_right") { result = RNSModalScreenStackAnimation::Slide_from_right; return; } 691 if (string == "slide_from_left") { result = RNSModalScreenStackAnimation::Slide_from_left; return; } 692 if (string == "slide_from_bottom") { result = RNSModalScreenStackAnimation::Slide_from_bottom; return; } 693 if (string == "fade_from_bottom") { result = RNSModalScreenStackAnimation::Fade_from_bottom; return; } 694 if (string == "ios_from_right") { result = RNSModalScreenStackAnimation::Ios_from_right; return; } 695 if (string == "ios_from_left") { result = RNSModalScreenStackAnimation::Ios_from_left; return; } 696 abort(); 697} 698 699static inline std::string toString(const RNSModalScreenStackAnimation &value) { 700 switch (value) { 701 case RNSModalScreenStackAnimation::Default: return "default"; 702 case RNSModalScreenStackAnimation::Flip: return "flip"; 703 case RNSModalScreenStackAnimation::Simple_push: return "simple_push"; 704 case RNSModalScreenStackAnimation::None: return "none"; 705 case RNSModalScreenStackAnimation::Fade: return "fade"; 706 case RNSModalScreenStackAnimation::Slide_from_right: return "slide_from_right"; 707 case RNSModalScreenStackAnimation::Slide_from_left: return "slide_from_left"; 708 case RNSModalScreenStackAnimation::Slide_from_bottom: return "slide_from_bottom"; 709 case RNSModalScreenStackAnimation::Fade_from_bottom: return "fade_from_bottom"; 710 case RNSModalScreenStackAnimation::Ios_from_right: return "ios_from_right"; 711 case RNSModalScreenStackAnimation::Ios_from_left: return "ios_from_left"; 712 } 713} 714 715#ifdef RN_SERIALIZABLE_STATE 716static inline folly::dynamic toDynamic(const RNSModalScreenStackAnimation &value) { 717 return toString(value); 718} 719#endif 720enum class RNSModalScreenReplaceAnimation { Pop, Push }; 721 722static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSModalScreenReplaceAnimation &result) { 723 auto string = (std::string)value; 724 if (string == "pop") { result = RNSModalScreenReplaceAnimation::Pop; return; } 725 if (string == "push") { result = RNSModalScreenReplaceAnimation::Push; return; } 726 abort(); 727} 728 729static inline std::string toString(const RNSModalScreenReplaceAnimation &value) { 730 switch (value) { 731 case RNSModalScreenReplaceAnimation::Pop: return "pop"; 732 case RNSModalScreenReplaceAnimation::Push: return "push"; 733 } 734} 735 736#ifdef RN_SERIALIZABLE_STATE 737static inline folly::dynamic toDynamic(const RNSModalScreenReplaceAnimation &value) { 738 return toString(value); 739} 740#endif 741enum class RNSModalScreenSwipeDirection { Vertical, Horizontal }; 742 743static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSModalScreenSwipeDirection &result) { 744 auto string = (std::string)value; 745 if (string == "vertical") { result = RNSModalScreenSwipeDirection::Vertical; return; } 746 if (string == "horizontal") { result = RNSModalScreenSwipeDirection::Horizontal; return; } 747 abort(); 748} 749 750static inline std::string toString(const RNSModalScreenSwipeDirection &value) { 751 switch (value) { 752 case RNSModalScreenSwipeDirection::Vertical: return "vertical"; 753 case RNSModalScreenSwipeDirection::Horizontal: return "horizontal"; 754 } 755} 756 757#ifdef RN_SERIALIZABLE_STATE 758static inline folly::dynamic toDynamic(const RNSModalScreenSwipeDirection &value) { 759 return toString(value); 760} 761#endif 762struct RNSModalScreenGestureResponseDistanceStruct { 763 Float start{0.0}; 764 Float end{0.0}; 765 Float top{0.0}; 766 Float bottom{0.0}; 767 768#ifdef RN_SERIALIZABLE_STATE 769 bool operator==(const RNSModalScreenGestureResponseDistanceStruct&) const = default; 770 771 folly::dynamic toDynamic() const { 772 folly::dynamic result = folly::dynamic::object(); 773 result["start"] = start; 774 result["end"] = end; 775 result["top"] = top; 776 result["bottom"] = bottom; 777 return result; 778 } 779#endif 780}; 781 782static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSModalScreenGestureResponseDistanceStruct &result) { 783 auto map = (std::unordered_map<std::string, RawValue>)value; 784 785 auto tmp_start = map.find("start"); 786 if (tmp_start != map.end()) { 787 fromRawValue(context, tmp_start->second, result.start); 788 } 789 auto tmp_end = map.find("end"); 790 if (tmp_end != map.end()) { 791 fromRawValue(context, tmp_end->second, result.end); 792 } 793 auto tmp_top = map.find("top"); 794 if (tmp_top != map.end()) { 795 fromRawValue(context, tmp_top->second, result.top); 796 } 797 auto tmp_bottom = map.find("bottom"); 798 if (tmp_bottom != map.end()) { 799 fromRawValue(context, tmp_bottom->second, result.bottom); 800 } 801} 802 803static inline std::string toString(const RNSModalScreenGestureResponseDistanceStruct &value) { 804 return "[Object RNSModalScreenGestureResponseDistanceStruct]"; 805} 806 807#ifdef RN_SERIALIZABLE_STATE 808static inline folly::dynamic toDynamic(const RNSModalScreenGestureResponseDistanceStruct &value) { 809 return value.toDynamic(); 810} 811#endif 812class RNSModalScreenProps final : public ViewProps { 813 public: 814 RNSModalScreenProps() = default; 815 RNSModalScreenProps(const PropsParserContext& context, const RNSModalScreenProps &sourceProps, const RawProps &rawProps); 816 817#pragma mark - Props 818 819 std::string screenId{""}; 820 std::vector<Float> sheetAllowedDetents{}; 821 int sheetLargestUndimmedDetent{-1}; 822 bool sheetGrabberVisible{false}; 823 Float sheetCornerRadius{-1.0}; 824 bool sheetExpandsWhenScrolledToEdge{false}; 825 int sheetInitialDetent{0}; 826 int sheetElevation{24}; 827 bool customAnimationOnSwipe{false}; 828 bool fullScreenSwipeEnabled{false}; 829 bool fullScreenSwipeShadowEnabled{true}; 830 bool homeIndicatorHidden{false}; 831 bool preventNativeDismiss{false}; 832 bool gestureEnabled{true}; 833 SharedColor statusBarColor{}; 834 bool statusBarHidden{false}; 835 std::string screenOrientation{}; 836 std::string statusBarAnimation{}; 837 std::string statusBarStyle{}; 838 bool statusBarTranslucent{false}; 839 RNSModalScreenGestureResponseDistanceStruct gestureResponseDistance{}; 840 RNSModalScreenStackPresentation stackPresentation{RNSModalScreenStackPresentation::Push}; 841 RNSModalScreenStackAnimation stackAnimation{RNSModalScreenStackAnimation::Default}; 842 int transitionDuration{500}; 843 RNSModalScreenReplaceAnimation replaceAnimation{RNSModalScreenReplaceAnimation::Pop}; 844 RNSModalScreenSwipeDirection swipeDirection{RNSModalScreenSwipeDirection::Horizontal}; 845 bool hideKeyboardOnSwipe{false}; 846 Float activityState{-1.0}; 847 SharedColor navigationBarColor{}; 848 bool navigationBarTranslucent{false}; 849 bool navigationBarHidden{false}; 850 bool nativeBackButtonDismissalEnabled{false}; 851 852 #ifdef RN_SERIALIZABLE_STATE 853 ComponentName getDiffPropsImplementationTarget() const override; 854 855 folly::dynamic getDiffProps(const Props* prevProps) const override; 856 #endif 857}; 858 859class RNSScreenContainerProps final : public ViewProps { 860 public: 861 RNSScreenContainerProps() = default; 862 RNSScreenContainerProps(const PropsParserContext& context, const RNSScreenContainerProps &sourceProps, const RawProps &rawProps); 863 864#pragma mark - Props 865 866 867 868 #ifdef RN_SERIALIZABLE_STATE 869 ComponentName getDiffPropsImplementationTarget() const override; 870 871 folly::dynamic getDiffProps(const Props* prevProps) const override; 872 #endif 873}; 874 875class RNSScreenContentWrapperProps final : public ViewProps { 876 public: 877 RNSScreenContentWrapperProps() = default; 878 RNSScreenContentWrapperProps(const PropsParserContext& context, const RNSScreenContentWrapperProps &sourceProps, const RawProps &rawProps); 879 880#pragma mark - Props 881 882 883 884 #ifdef RN_SERIALIZABLE_STATE 885 ComponentName getDiffPropsImplementationTarget() const override; 886 887 folly::dynamic getDiffProps(const Props* prevProps) const override; 888 #endif 889}; 890 891class RNSScreenFooterProps final : public ViewProps { 892 public: 893 RNSScreenFooterProps() = default; 894 RNSScreenFooterProps(const PropsParserContext& context, const RNSScreenFooterProps &sourceProps, const RawProps &rawProps); 895 896#pragma mark - Props 897 898 899 900 #ifdef RN_SERIALIZABLE_STATE 901 ComponentName getDiffPropsImplementationTarget() const override; 902 903 folly::dynamic getDiffProps(const Props* prevProps) const override; 904 #endif 905}; 906 907enum class RNSScreenStackPresentation { Push, Modal, TransparentModal, FullScreenModal, FormSheet, PageSheet, ContainedModal, ContainedTransparentModal }; 908 909static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSScreenStackPresentation &result) { 910 auto string = (std::string)value; 911 if (string == "push") { result = RNSScreenStackPresentation::Push; return; } 912 if (string == "modal") { result = RNSScreenStackPresentation::Modal; return; } 913 if (string == "transparentModal") { result = RNSScreenStackPresentation::TransparentModal; return; } 914 if (string == "fullScreenModal") { result = RNSScreenStackPresentation::FullScreenModal; return; } 915 if (string == "formSheet") { result = RNSScreenStackPresentation::FormSheet; return; } 916 if (string == "pageSheet") { result = RNSScreenStackPresentation::PageSheet; return; } 917 if (string == "containedModal") { result = RNSScreenStackPresentation::ContainedModal; return; } 918 if (string == "containedTransparentModal") { result = RNSScreenStackPresentation::ContainedTransparentModal; return; } 919 abort(); 920} 921 922static inline std::string toString(const RNSScreenStackPresentation &value) { 923 switch (value) { 924 case RNSScreenStackPresentation::Push: return "push"; 925 case RNSScreenStackPresentation::Modal: return "modal"; 926 case RNSScreenStackPresentation::TransparentModal: return "transparentModal"; 927 case RNSScreenStackPresentation::FullScreenModal: return "fullScreenModal"; 928 case RNSScreenStackPresentation::FormSheet: return "formSheet"; 929 case RNSScreenStackPresentation::PageSheet: return "pageSheet"; 930 case RNSScreenStackPresentation::ContainedModal: return "containedModal"; 931 case RNSScreenStackPresentation::ContainedTransparentModal: return "containedTransparentModal"; 932 } 933} 934 935#ifdef RN_SERIALIZABLE_STATE 936static inline folly::dynamic toDynamic(const RNSScreenStackPresentation &value) { 937 return toString(value); 938} 939#endif 940enum class RNSScreenStackAnimation { Default, Flip, Simple_push, None, Fade, Slide_from_right, Slide_from_left, Slide_from_bottom, Fade_from_bottom, Ios_from_right, Ios_from_left }; 941 942static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSScreenStackAnimation &result) { 943 auto string = (std::string)value; 944 if (string == "default") { result = RNSScreenStackAnimation::Default; return; } 945 if (string == "flip") { result = RNSScreenStackAnimation::Flip; return; } 946 if (string == "simple_push") { result = RNSScreenStackAnimation::Simple_push; return; } 947 if (string == "none") { result = RNSScreenStackAnimation::None; return; } 948 if (string == "fade") { result = RNSScreenStackAnimation::Fade; return; } 949 if (string == "slide_from_right") { result = RNSScreenStackAnimation::Slide_from_right; return; } 950 if (string == "slide_from_left") { result = RNSScreenStackAnimation::Slide_from_left; return; } 951 if (string == "slide_from_bottom") { result = RNSScreenStackAnimation::Slide_from_bottom; return; } 952 if (string == "fade_from_bottom") { result = RNSScreenStackAnimation::Fade_from_bottom; return; } 953 if (string == "ios_from_right") { result = RNSScreenStackAnimation::Ios_from_right; return; } 954 if (string == "ios_from_left") { result = RNSScreenStackAnimation::Ios_from_left; return; } 955 abort(); 956} 957 958static inline std::string toString(const RNSScreenStackAnimation &value) { 959 switch (value) { 960 case RNSScreenStackAnimation::Default: return "default"; 961 case RNSScreenStackAnimation::Flip: return "flip"; 962 case RNSScreenStackAnimation::Simple_push: return "simple_push"; 963 case RNSScreenStackAnimation::None: return "none"; 964 case RNSScreenStackAnimation::Fade: return "fade"; 965 case RNSScreenStackAnimation::Slide_from_right: return "slide_from_right"; 966 case RNSScreenStackAnimation::Slide_from_left: return "slide_from_left"; 967 case RNSScreenStackAnimation::Slide_from_bottom: return "slide_from_bottom"; 968 case RNSScreenStackAnimation::Fade_from_bottom: return "fade_from_bottom"; 969 case RNSScreenStackAnimation::Ios_from_right: return "ios_from_right"; 970 case RNSScreenStackAnimation::Ios_from_left: return "ios_from_left"; 971 } 972} 973 974#ifdef RN_SERIALIZABLE_STATE 975static inline folly::dynamic toDynamic(const RNSScreenStackAnimation &value) { 976 return toString(value); 977} 978#endif 979enum class RNSScreenReplaceAnimation { Pop, Push }; 980 981static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSScreenReplaceAnimation &result) { 982 auto string = (std::string)value; 983 if (string == "pop") { result = RNSScreenReplaceAnimation::Pop; return; } 984 if (string == "push") { result = RNSScreenReplaceAnimation::Push; return; } 985 abort(); 986} 987 988static inline std::string toString(const RNSScreenReplaceAnimation &value) { 989 switch (value) { 990 case RNSScreenReplaceAnimation::Pop: return "pop"; 991 case RNSScreenReplaceAnimation::Push: return "push"; 992 } 993} 994 995#ifdef RN_SERIALIZABLE_STATE 996static inline folly::dynamic toDynamic(const RNSScreenReplaceAnimation &value) { 997 return toString(value); 998} 999#endif 1000enum class RNSScreenSwipeDirection { Vertical, Horizontal }; 1001 1002static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSScreenSwipeDirection &result) { 1003 auto string = (std::string)value; 1004 if (string == "vertical") { result = RNSScreenSwipeDirection::Vertical; return; } 1005 if (string == "horizontal") { result = RNSScreenSwipeDirection::Horizontal; return; } 1006 abort(); 1007} 1008 1009static inline std::string toString(const RNSScreenSwipeDirection &value) { 1010 switch (value) { 1011 case RNSScreenSwipeDirection::Vertical: return "vertical"; 1012 case RNSScreenSwipeDirection::Horizontal: return "horizontal"; 1013 } 1014} 1015 1016#ifdef RN_SERIALIZABLE_STATE 1017static inline folly::dynamic toDynamic(const RNSScreenSwipeDirection &value) { 1018 return toString(value); 1019} 1020#endif 1021struct RNSScreenGestureResponseDistanceStruct { 1022 Float start{0.0}; 1023 Float end{0.0}; 1024 Float top{0.0}; 1025 Float bottom{0.0}; 1026 1027#ifdef RN_SERIALIZABLE_STATE 1028 bool operator==(const RNSScreenGestureResponseDistanceStruct&) const = default; 1029 1030 folly::dynamic toDynamic() const { 1031 folly::dynamic result = folly::dynamic::object(); 1032 result["start"] = start; 1033 result["end"] = end; 1034 result["top"] = top; 1035 result["bottom"] = bottom; 1036 return result; 1037 } 1038#endif 1039}; 1040 1041static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSScreenGestureResponseDistanceStruct &result) { 1042 auto map = (std::unordered_map<std::string, RawValue>)value; 1043 1044 auto tmp_start = map.find("start"); 1045 if (tmp_start != map.end()) { 1046 fromRawValue(context, tmp_start->second, result.start); 1047 } 1048 auto tmp_end = map.find("end"); 1049 if (tmp_end != map.end()) { 1050 fromRawValue(context, tmp_end->second, result.end); 1051 } 1052 auto tmp_top = map.find("top"); 1053 if (tmp_top != map.end()) { 1054 fromRawValue(context, tmp_top->second, result.top); 1055 } 1056 auto tmp_bottom = map.find("bottom"); 1057 if (tmp_bottom != map.end()) { 1058 fromRawValue(context, tmp_bottom->second, result.bottom); 1059 } 1060} 1061 1062static inline std::string toString(const RNSScreenGestureResponseDistanceStruct &value) { 1063 return "[Object RNSScreenGestureResponseDistanceStruct]"; 1064} 1065 1066#ifdef RN_SERIALIZABLE_STATE 1067static inline folly::dynamic toDynamic(const RNSScreenGestureResponseDistanceStruct &value) { 1068 return value.toDynamic(); 1069} 1070#endif 1071class RNSScreenProps final : public ViewProps { 1072 public: 1073 RNSScreenProps() = default; 1074 RNSScreenProps(const PropsParserContext& context, const RNSScreenProps &sourceProps, const RawProps &rawProps); 1075 1076#pragma mark - Props 1077 1078 std::string screenId{""}; 1079 std::vector<Float> sheetAllowedDetents{}; 1080 int sheetLargestUndimmedDetent{-1}; 1081 bool sheetGrabberVisible{false}; 1082 Float sheetCornerRadius{-1.0}; 1083 bool sheetExpandsWhenScrolledToEdge{false}; 1084 int sheetInitialDetent{0}; 1085 int sheetElevation{24}; 1086 bool customAnimationOnSwipe{false}; 1087 bool fullScreenSwipeEnabled{false}; 1088 bool fullScreenSwipeShadowEnabled{true}; 1089 bool homeIndicatorHidden{false}; 1090 bool preventNativeDismiss{false}; 1091 bool gestureEnabled{true}; 1092 SharedColor statusBarColor{}; 1093 bool statusBarHidden{false}; 1094 std::string screenOrientation{}; 1095 std::string statusBarAnimation{}; 1096 std::string statusBarStyle{}; 1097 bool statusBarTranslucent{false}; 1098 RNSScreenGestureResponseDistanceStruct gestureResponseDistance{}; 1099 RNSScreenStackPresentation stackPresentation{RNSScreenStackPresentation::Push}; 1100 RNSScreenStackAnimation stackAnimation{RNSScreenStackAnimation::Default}; 1101 int transitionDuration{500}; 1102 RNSScreenReplaceAnimation replaceAnimation{RNSScreenReplaceAnimation::Pop}; 1103 RNSScreenSwipeDirection swipeDirection{RNSScreenSwipeDirection::Horizontal}; 1104 bool hideKeyboardOnSwipe{false}; 1105 Float activityState{-1.0}; 1106 SharedColor navigationBarColor{}; 1107 bool navigationBarTranslucent{false}; 1108 bool navigationBarHidden{false}; 1109 bool nativeBackButtonDismissalEnabled{false}; 1110 1111 #ifdef RN_SERIALIZABLE_STATE 1112 ComponentName getDiffPropsImplementationTarget() const override; 1113 1114 folly::dynamic getDiffProps(const Props* prevProps) const override; 1115 #endif 1116}; 1117 1118class RNSScreenNavigationContainerProps final : public ViewProps { 1119 public: 1120 RNSScreenNavigationContainerProps() = default; 1121 RNSScreenNavigationContainerProps(const PropsParserContext& context, const RNSScreenNavigationContainerProps &sourceProps, const RawProps &rawProps); 1122 1123#pragma mark - Props 1124 1125 1126 1127 #ifdef RN_SERIALIZABLE_STATE 1128 ComponentName getDiffPropsImplementationTarget() const override; 1129 1130 folly::dynamic getDiffProps(const Props* prevProps) const override; 1131 #endif 1132}; 1133 1134enum class RNSScreenStackHeaderConfigDirection { Rtl, Ltr }; 1135 1136static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSScreenStackHeaderConfigDirection &result) { 1137 auto string = (std::string)value; 1138 if (string == "rtl") { result = RNSScreenStackHeaderConfigDirection::Rtl; return; } 1139 if (string == "ltr") { result = RNSScreenStackHeaderConfigDirection::Ltr; return; } 1140 abort(); 1141} 1142 1143static inline std::string toString(const RNSScreenStackHeaderConfigDirection &value) { 1144 switch (value) { 1145 case RNSScreenStackHeaderConfigDirection::Rtl: return "rtl"; 1146 case RNSScreenStackHeaderConfigDirection::Ltr: return "ltr"; 1147 } 1148} 1149 1150#ifdef RN_SERIALIZABLE_STATE 1151static inline folly::dynamic toDynamic(const RNSScreenStackHeaderConfigDirection &value) { 1152 return toString(value); 1153} 1154#endif 1155enum class RNSScreenStackHeaderConfigBackButtonDisplayMode { Minimal, Default, Generic }; 1156 1157static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSScreenStackHeaderConfigBackButtonDisplayMode &result) { 1158 auto string = (std::string)value; 1159 if (string == "minimal") { result = RNSScreenStackHeaderConfigBackButtonDisplayMode::Minimal; return; } 1160 if (string == "default") { result = RNSScreenStackHeaderConfigBackButtonDisplayMode::Default; return; } 1161 if (string == "generic") { result = RNSScreenStackHeaderConfigBackButtonDisplayMode::Generic; return; } 1162 abort(); 1163} 1164 1165static inline std::string toString(const RNSScreenStackHeaderConfigBackButtonDisplayMode &value) { 1166 switch (value) { 1167 case RNSScreenStackHeaderConfigBackButtonDisplayMode::Minimal: return "minimal"; 1168 case RNSScreenStackHeaderConfigBackButtonDisplayMode::Default: return "default"; 1169 case RNSScreenStackHeaderConfigBackButtonDisplayMode::Generic: return "generic"; 1170 } 1171} 1172 1173#ifdef RN_SERIALIZABLE_STATE 1174static inline folly::dynamic toDynamic(const RNSScreenStackHeaderConfigBackButtonDisplayMode &value) { 1175 return toString(value); 1176} 1177#endif 1178enum class RNSScreenStackHeaderConfigBlurEffect { None, ExtraLight, Light, Dark, Regular, Prominent, SystemUltraThinMaterial, SystemThinMaterial, SystemMaterial, SystemThickMaterial, SystemChromeMaterial, SystemUltraThinMaterialLight, SystemThinMaterialLight, SystemMaterialLight, SystemThickMaterialLight, SystemChromeMaterialLight, SystemUltraThinMaterialDark, SystemThinMaterialDark, SystemMaterialDark, SystemThickMaterialDark, SystemChromeMaterialDark }; 1179 1180static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSScreenStackHeaderConfigBlurEffect &result) { 1181 auto string = (std::string)value; 1182 if (string == "none") { result = RNSScreenStackHeaderConfigBlurEffect::None; return; } 1183 if (string == "extraLight") { result = RNSScreenStackHeaderConfigBlurEffect::ExtraLight; return; } 1184 if (string == "light") { result = RNSScreenStackHeaderConfigBlurEffect::Light; return; } 1185 if (string == "dark") { result = RNSScreenStackHeaderConfigBlurEffect::Dark; return; } 1186 if (string == "regular") { result = RNSScreenStackHeaderConfigBlurEffect::Regular; return; } 1187 if (string == "prominent") { result = RNSScreenStackHeaderConfigBlurEffect::Prominent; return; } 1188 if (string == "systemUltraThinMaterial") { result = RNSScreenStackHeaderConfigBlurEffect::SystemUltraThinMaterial; return; } 1189 if (string == "systemThinMaterial") { result = RNSScreenStackHeaderConfigBlurEffect::SystemThinMaterial; return; } 1190 if (string == "systemMaterial") { result = RNSScreenStackHeaderConfigBlurEffect::SystemMaterial; return; } 1191 if (string == "systemThickMaterial") { result = RNSScreenStackHeaderConfigBlurEffect::SystemThickMaterial; return; } 1192 if (string == "systemChromeMaterial") { result = RNSScreenStackHeaderConfigBlurEffect::SystemChromeMaterial; return; } 1193 if (string == "systemUltraThinMaterialLight") { result = RNSScreenStackHeaderConfigBlurEffect::SystemUltraThinMaterialLight; return; } 1194 if (string == "systemThinMaterialLight") { result = RNSScreenStackHeaderConfigBlurEffect::SystemThinMaterialLight; return; } 1195 if (string == "systemMaterialLight") { result = RNSScreenStackHeaderConfigBlurEffect::SystemMaterialLight; return; } 1196 if (string == "systemThickMaterialLight") { result = RNSScreenStackHeaderConfigBlurEffect::SystemThickMaterialLight; return; } 1197 if (string == "systemChromeMaterialLight") { result = RNSScreenStackHeaderConfigBlurEffect::SystemChromeMaterialLight; return; } 1198 if (string == "systemUltraThinMaterialDark") { result = RNSScreenStackHeaderConfigBlurEffect::SystemUltraThinMaterialDark; return; } 1199 if (string == "systemThinMaterialDark") { result = RNSScreenStackHeaderConfigBlurEffect::SystemThinMaterialDark; return; } 1200 if (string == "systemMaterialDark") { result = RNSScreenStackHeaderConfigBlurEffect::SystemMaterialDark; return; } 1201 if (string == "systemThickMaterialDark") { result = RNSScreenStackHeaderConfigBlurEffect::SystemThickMaterialDark; return; } 1202 if (string == "systemChromeMaterialDark") { result = RNSScreenStackHeaderConfigBlurEffect::SystemChromeMaterialDark; return; } 1203 abort(); 1204} 1205 1206static inline std::string toString(const RNSScreenStackHeaderConfigBlurEffect &value) { 1207 switch (value) { 1208 case RNSScreenStackHeaderConfigBlurEffect::None: return "none"; 1209 case RNSScreenStackHeaderConfigBlurEffect::ExtraLight: return "extraLight"; 1210 case RNSScreenStackHeaderConfigBlurEffect::Light: return "light"; 1211 case RNSScreenStackHeaderConfigBlurEffect::Dark: return "dark"; 1212 case RNSScreenStackHeaderConfigBlurEffect::Regular: return "regular"; 1213 case RNSScreenStackHeaderConfigBlurEffect::Prominent: return "prominent"; 1214 case RNSScreenStackHeaderConfigBlurEffect::SystemUltraThinMaterial: return "systemUltraThinMaterial"; 1215 case RNSScreenStackHeaderConfigBlurEffect::SystemThinMaterial: return "systemThinMaterial"; 1216 case RNSScreenStackHeaderConfigBlurEffect::SystemMaterial: return "systemMaterial"; 1217 case RNSScreenStackHeaderConfigBlurEffect::SystemThickMaterial: return "systemThickMaterial"; 1218 case RNSScreenStackHeaderConfigBlurEffect::SystemChromeMaterial: return "systemChromeMaterial"; 1219 case RNSScreenStackHeaderConfigBlurEffect::SystemUltraThinMaterialLight: return "systemUltraThinMaterialLight"; 1220 case RNSScreenStackHeaderConfigBlurEffect::SystemThinMaterialLight: return "systemThinMaterialLight"; 1221 case RNSScreenStackHeaderConfigBlurEffect::SystemMaterialLight: return "systemMaterialLight"; 1222 case RNSScreenStackHeaderConfigBlurEffect::SystemThickMaterialLight: return "systemThickMaterialLight"; 1223 case RNSScreenStackHeaderConfigBlurEffect::SystemChromeMaterialLight: return "systemChromeMaterialLight"; 1224 case RNSScreenStackHeaderConfigBlurEffect::SystemUltraThinMaterialDark: return "systemUltraThinMaterialDark"; 1225 case RNSScreenStackHeaderConfigBlurEffect::SystemThinMaterialDark: return "systemThinMaterialDark"; 1226 case RNSScreenStackHeaderConfigBlurEffect::SystemMaterialDark: return "systemMaterialDark"; 1227 case RNSScreenStackHeaderConfigBlurEffect::SystemThickMaterialDark: return "systemThickMaterialDark"; 1228 case RNSScreenStackHeaderConfigBlurEffect::SystemChromeMaterialDark: return "systemChromeMaterialDark"; 1229 } 1230} 1231 1232#ifdef RN_SERIALIZABLE_STATE 1233static inline folly::dynamic toDynamic(const RNSScreenStackHeaderConfigBlurEffect &value) { 1234 return toString(value); 1235} 1236#endif 1237 1238class RNSScreenStackHeaderConfigProps final : public ViewProps { 1239 public: 1240 RNSScreenStackHeaderConfigProps() = default; 1241 RNSScreenStackHeaderConfigProps(const PropsParserContext& context, const RNSScreenStackHeaderConfigProps &sourceProps, const RawProps &rawProps); 1242 1243#pragma mark - Props 1244 1245 SharedColor backgroundColor{}; 1246 std::string backTitle{}; 1247 std::string backTitleFontFamily{}; 1248 int backTitleFontSize{0}; 1249 bool backTitleVisible{true}; 1250 SharedColor color{}; 1251 RNSScreenStackHeaderConfigDirection direction{RNSScreenStackHeaderConfigDirection::Ltr}; 1252 bool hidden{false}; 1253 bool hideShadow{false}; 1254 bool largeTitle{false}; 1255 std::string largeTitleFontFamily{}; 1256 int largeTitleFontSize{0}; 1257 std::string largeTitleFontWeight{}; 1258 SharedColor largeTitleBackgroundColor{}; 1259 bool largeTitleHideShadow{false}; 1260 SharedColor largeTitleColor{}; 1261 bool translucent{false}; 1262 std::string title{}; 1263 std::string titleFontFamily{}; 1264 int titleFontSize{0}; 1265 std::string titleFontWeight{}; 1266 SharedColor titleColor{}; 1267 bool disableBackButtonMenu{false}; 1268 RNSScreenStackHeaderConfigBackButtonDisplayMode backButtonDisplayMode{RNSScreenStackHeaderConfigBackButtonDisplayMode::Default}; 1269 bool hideBackButton{false}; 1270 bool backButtonInCustomView{false}; 1271 RNSScreenStackHeaderConfigBlurEffect blurEffect{RNSScreenStackHeaderConfigBlurEffect::None}; 1272 bool topInsetEnabled{false}; 1273 1274 #ifdef RN_SERIALIZABLE_STATE 1275 ComponentName getDiffPropsImplementationTarget() const override; 1276 1277 folly::dynamic getDiffProps(const Props* prevProps) const override; 1278 #endif 1279}; 1280 1281enum class RNSScreenStackHeaderSubviewType { Back, Right, Left, Title, Center, SearchBar }; 1282 1283static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSScreenStackHeaderSubviewType &result) { 1284 auto string = (std::string)value; 1285 if (string == "back") { result = RNSScreenStackHeaderSubviewType::Back; return; } 1286 if (string == "right") { result = RNSScreenStackHeaderSubviewType::Right; return; } 1287 if (string == "left") { result = RNSScreenStackHeaderSubviewType::Left; return; } 1288 if (string == "title") { result = RNSScreenStackHeaderSubviewType::Title; return; } 1289 if (string == "center") { result = RNSScreenStackHeaderSubviewType::Center; return; } 1290 if (string == "searchBar") { result = RNSScreenStackHeaderSubviewType::SearchBar; return; } 1291 abort(); 1292} 1293 1294static inline std::string toString(const RNSScreenStackHeaderSubviewType &value) { 1295 switch (value) { 1296 case RNSScreenStackHeaderSubviewType::Back: return "back"; 1297 case RNSScreenStackHeaderSubviewType::Right: return "right"; 1298 case RNSScreenStackHeaderSubviewType::Left: return "left"; 1299 case RNSScreenStackHeaderSubviewType::Title: return "title"; 1300 case RNSScreenStackHeaderSubviewType::Center: return "center"; 1301 case RNSScreenStackHeaderSubviewType::SearchBar: return "searchBar"; 1302 } 1303} 1304 1305#ifdef RN_SERIALIZABLE_STATE 1306static inline folly::dynamic toDynamic(const RNSScreenStackHeaderSubviewType &value) { 1307 return toString(value); 1308} 1309#endif 1310 1311class RNSScreenStackHeaderSubviewProps final : public ViewProps { 1312 public: 1313 RNSScreenStackHeaderSubviewProps() = default; 1314 RNSScreenStackHeaderSubviewProps(const PropsParserContext& context, const RNSScreenStackHeaderSubviewProps &sourceProps, const RawProps &rawProps); 1315 1316#pragma mark - Props 1317 1318 RNSScreenStackHeaderSubviewType type{RNSScreenStackHeaderSubviewType::Left}; 1319 1320 #ifdef RN_SERIALIZABLE_STATE 1321 ComponentName getDiffPropsImplementationTarget() const override; 1322 1323 folly::dynamic getDiffProps(const Props* prevProps) const override; 1324 #endif 1325}; 1326 1327class RNSScreenStackProps final : public ViewProps { 1328 public: 1329 RNSScreenStackProps() = default; 1330 RNSScreenStackProps(const PropsParserContext& context, const RNSScreenStackProps &sourceProps, const RawProps &rawProps); 1331 1332#pragma mark - Props 1333 1334 1335 1336 #ifdef RN_SERIALIZABLE_STATE 1337 ComponentName getDiffPropsImplementationTarget() const override; 1338 1339 folly::dynamic getDiffProps(const Props* prevProps) const override; 1340 #endif 1341}; 1342 1343enum class RNSSearchBarAutoCapitalize { None, Words, Sentences, Characters }; 1344 1345static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSSearchBarAutoCapitalize &result) { 1346 auto string = (std::string)value; 1347 if (string == "none") { result = RNSSearchBarAutoCapitalize::None; return; } 1348 if (string == "words") { result = RNSSearchBarAutoCapitalize::Words; return; } 1349 if (string == "sentences") { result = RNSSearchBarAutoCapitalize::Sentences; return; } 1350 if (string == "characters") { result = RNSSearchBarAutoCapitalize::Characters; return; } 1351 abort(); 1352} 1353 1354static inline std::string toString(const RNSSearchBarAutoCapitalize &value) { 1355 switch (value) { 1356 case RNSSearchBarAutoCapitalize::None: return "none"; 1357 case RNSSearchBarAutoCapitalize::Words: return "words"; 1358 case RNSSearchBarAutoCapitalize::Sentences: return "sentences"; 1359 case RNSSearchBarAutoCapitalize::Characters: return "characters"; 1360 } 1361} 1362 1363#ifdef RN_SERIALIZABLE_STATE 1364static inline folly::dynamic toDynamic(const RNSSearchBarAutoCapitalize &value) { 1365 return toString(value); 1366} 1367#endif 1368enum class RNSSearchBarPlacement { Automatic, Inline, Stacked, Integrated, IntegratedButton, IntegratedCentered }; 1369 1370static inline void fromRawValue(const PropsParserContext& context, const RawValue &value, RNSSearchBarPlacement &result) { 1371 auto string = (std::string)value; 1372 if (string == "automatic") { result = RNSSearchBarPlacement::Automatic; return; } 1373 if (string == "inline") { result = RNSSearchBarPlacement::Inline; return; } 1374 if (string == "stacked") { result = RNSSearchBarPlacement::Stacked; return; } 1375 if (string == "integrated") { result = RNSSearchBarPlacement::Integrated; return; } 1376 if (string == "integratedButton") { result = RNSSearchBarPlacement::IntegratedButton; return; } 1377 if (string == "integratedCentered") { result = RNSSearchBarPlacement::IntegratedCentered; return; } 1378 abort(); 1379} 1380 1381static inline std::string toString(const RNSSearchBarPlacement &value) { 1382 switch (value) { 1383 case RNSSearchBarPlacement::Automatic: return "automatic"; 1384 case RNSSearchBarPlacement::Inline: return "inline"; 1385 case RNSSearchBarPlacement::Stacked: return "stacked"; 1386 case RNSSearchBarPlacement::Integrated: return "integrated"; 1387 case RNSSearchBarPlacement::IntegratedButton: return "integratedButton"; 1388 case RNSSearchBarPlacement::IntegratedCentered: return "integratedCentered"; 1389 } 1390} 1391 1392#ifdef RN_SERIALIZABLE_STATE 1393static inline folly::dynamic toDynamic(const RNSSearchBarPlacement &value) { 1394 return toString(value); 1395} 1396#endif 1397 1398class RNSSearchBarProps final : public ViewProps { 1399 public: 1400 RNSSearchBarProps() = default; 1401 RNSSearchBarProps(const PropsParserContext& context, const RNSSearchBarProps &sourceProps, const RawProps &rawProps); 1402 1403#pragma mark - Props 1404 1405 bool hideWhenScrolling{true}; 1406 RNSSearchBarAutoCapitalize autoCapitalize{RNSSearchBarAutoCapitalize::None}; 1407 std::string placeholder{}; 1408 RNSSearchBarPlacement placement{RNSSearchBarPlacement::Automatic}; 1409 bool allowToolbarIntegration{true}; 1410 bool obscureBackground{false}; 1411 bool hideNavigationBar{false}; 1412 std::string cancelButtonText{}; 1413 SharedColor barTintColor{}; 1414 SharedColor tintColor{}; 1415 SharedColor textColor{}; 1416 bool disableBackButtonOverride{false}; 1417 std::string inputType{}; 1418 SharedColor hintTextColor{}; 1419 SharedColor headerIconColor{}; 1420 bool shouldShowHintSearchIcon{true}; 1421 1422 #ifdef RN_SERIALIZABLE_STATE 1423 ComponentName getDiffPropsImplementationTarget() const override; 1424 1425 folly::dynamic getDiffProps(const Props* prevProps) const override; 1426 #endif 1427}; 1428 1429} // namespace facebook::react