@amazon-devices/react-native-screens 2.0.1758683737

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.
Files changed (381) hide show
  1. package/LICENSE +7 -0
  2. package/README.md +223 -0
  3. package/RNScreens.podspec +53 -0
  4. package/SystemBundles/8f5a820b958535e533acb38dbc0c72c1837721b9db075f4a1740e42b9fee3910.bundle +33668 -0
  5. package/SystemBundles/8f5a820b958535e533acb38dbc0c72c1837721b9db075f4a1740e42b9fee3910.map +1 -0
  6. package/SystemModules/amzn__react-native-screens.modules.txt +101 -0
  7. package/SystemModules/amzn__react-native-screens.private.modules.txt +244 -0
  8. package/SystemModules/keplerscript-system-bundle-config.json +7 -0
  9. package/THIRD_PARTY_NOTICES.txt +707 -0
  10. package/android/build.gradle +133 -0
  11. package/android/src/fabric/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +49 -0
  12. package/android/src/main/AndroidManifest.xml +5 -0
  13. package/android/src/main/java/com/swmansion/rnscreens/CustomSearchView.kt +77 -0
  14. package/android/src/main/java/com/swmansion/rnscreens/CustomToolbar.kt +7 -0
  15. package/android/src/main/java/com/swmansion/rnscreens/FragmentBackPressOverrider.kt +29 -0
  16. package/android/src/main/java/com/swmansion/rnscreens/FragmentHolder.kt +7 -0
  17. package/android/src/main/java/com/swmansion/rnscreens/RNScreensPackage.kt +21 -0
  18. package/android/src/main/java/com/swmansion/rnscreens/Screen.kt +289 -0
  19. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainer.kt +372 -0
  20. package/android/src/main/java/com/swmansion/rnscreens/ScreenContainerViewManager.kt +40 -0
  21. package/android/src/main/java/com/swmansion/rnscreens/ScreenEventDispatcher.kt +21 -0
  22. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragment.kt +331 -0
  23. package/android/src/main/java/com/swmansion/rnscreens/ScreenFragmentWrapper.kt +22 -0
  24. package/android/src/main/java/com/swmansion/rnscreens/ScreenStack.kt +336 -0
  25. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragment.kt +282 -0
  26. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackFragmentWrapper.kt +15 -0
  27. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfig.kt +398 -0
  28. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderConfigViewManager.kt +204 -0
  29. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubview.kt +38 -0
  30. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackHeaderSubviewManager.kt +41 -0
  31. package/android/src/main/java/com/swmansion/rnscreens/ScreenStackViewManager.kt +75 -0
  32. package/android/src/main/java/com/swmansion/rnscreens/ScreenViewManager.kt +186 -0
  33. package/android/src/main/java/com/swmansion/rnscreens/ScreenWindowTraits.kt +296 -0
  34. package/android/src/main/java/com/swmansion/rnscreens/ScreensShadowNode.kt +19 -0
  35. package/android/src/main/java/com/swmansion/rnscreens/SearchBarManager.kt +133 -0
  36. package/android/src/main/java/com/swmansion/rnscreens/SearchBarView.kt +178 -0
  37. package/android/src/main/java/com/swmansion/rnscreens/SearchViewFormatter.kt +67 -0
  38. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderAttachedEvent.kt +22 -0
  39. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderBackButtonClickedEvent.kt +22 -0
  40. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderDetachedEvent.kt +22 -0
  41. package/android/src/main/java/com/swmansion/rnscreens/events/HeaderHeightChangeEvent.kt +26 -0
  42. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenAppearEvent.kt +18 -0
  43. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDisappearEvent.kt +18 -0
  44. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenDismissedEvent.kt +20 -0
  45. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenTransitionProgressEvent.kt +32 -0
  46. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillAppearEvent.kt +18 -0
  47. package/android/src/main/java/com/swmansion/rnscreens/events/ScreenWillDisappearEvent.kt +18 -0
  48. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarBlurEvent.kt +22 -0
  49. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarChangeTextEvent.kt +28 -0
  50. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarCloseEvent.kt +22 -0
  51. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarFocusEvent.kt +22 -0
  52. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarOpenEvent.kt +22 -0
  53. package/android/src/main/java/com/swmansion/rnscreens/events/SearchBarSearchButtonPressEvent.kt +24 -0
  54. package/android/src/main/java/com/swmansion/rnscreens/events/StackFinishTransitioningEvent.kt +18 -0
  55. package/android/src/main/java/com/swmansion/rnscreens/utils/DeviceUtils.kt +12 -0
  56. package/android/src/main/jni/CMakeLists.txt +72 -0
  57. package/android/src/main/jni/rnscreens.cpp +16 -0
  58. package/android/src/main/jni/rnscreens.h +28 -0
  59. package/android/src/main/res/base/anim/rns_default_enter_in.xml +18 -0
  60. package/android/src/main/res/base/anim/rns_default_enter_out.xml +19 -0
  61. package/android/src/main/res/base/anim/rns_default_exit_in.xml +17 -0
  62. package/android/src/main/res/base/anim/rns_default_exit_out.xml +18 -0
  63. package/android/src/main/res/base/anim/rns_fade_from_bottom.xml +14 -0
  64. package/android/src/main/res/base/anim/rns_fade_in.xml +7 -0
  65. package/android/src/main/res/base/anim/rns_fade_out.xml +7 -0
  66. package/android/src/main/res/base/anim/rns_fade_to_bottom.xml +15 -0
  67. package/android/src/main/res/base/anim/rns_no_animation_20.xml +6 -0
  68. package/android/src/main/res/base/anim/rns_no_animation_250.xml +7 -0
  69. package/android/src/main/res/base/anim/rns_no_animation_350.xml +6 -0
  70. package/android/src/main/res/base/anim/rns_no_animation_medium.xml +7 -0
  71. package/android/src/main/res/base/anim/rns_slide_in_from_bottom.xml +7 -0
  72. package/android/src/main/res/base/anim/rns_slide_in_from_left.xml +5 -0
  73. package/android/src/main/res/base/anim/rns_slide_in_from_right.xml +5 -0
  74. package/android/src/main/res/base/anim/rns_slide_out_to_bottom.xml +7 -0
  75. package/android/src/main/res/base/anim/rns_slide_out_to_left.xml +5 -0
  76. package/android/src/main/res/base/anim/rns_slide_out_to_right.xml +5 -0
  77. package/android/src/main/res/base/anim/rns_standard_accelerate_interpolator.xml +6 -0
  78. package/android/src/main/res/v33/anim-v33/rns_default_enter_in.xml +38 -0
  79. package/android/src/main/res/v33/anim-v33/rns_default_enter_out.xml +38 -0
  80. package/android/src/main/res/v33/anim-v33/rns_default_exit_in.xml +38 -0
  81. package/android/src/main/res/v33/anim-v33/rns_default_exit_out.xml +38 -0
  82. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerDelegate.java +111 -0
  83. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenManagerInterface.java +44 -0
  84. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerDelegate.java +107 -0
  85. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderConfigManagerInterface.java +42 -0
  86. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerDelegate.java +31 -0
  87. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackHeaderSubviewManagerInterface.java +17 -0
  88. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerDelegate.java +25 -0
  89. package/android/src/paper/java/com/facebook/react/viewmanagers/RNSScreenStackManagerInterface.java +16 -0
  90. package/android/src/paper/java/com/swmansion/rnscreens/FabricEnabledViewGroup.kt +10 -0
  91. package/common/cpp/react/renderer/components/rnscreens/RNSScreenComponentDescriptor.h +41 -0
  92. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.cpp +9 -0
  93. package/common/cpp/react/renderer/components/rnscreens/RNSScreenShadowNode.h +30 -0
  94. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.cpp +14 -0
  95. package/common/cpp/react/renderer/components/rnscreens/RNSScreenState.h +45 -0
  96. package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.h +11 -0
  97. package/ios/RCTImageComponentView+RNSScreenStackHeaderConfig.mm +14 -0
  98. package/ios/RNSConvert.h +36 -0
  99. package/ios/RNSConvert.mm +154 -0
  100. package/ios/RNSEnums.h +71 -0
  101. package/ios/RNSFullWindowOverlay.h +34 -0
  102. package/ios/RNSFullWindowOverlay.mm +241 -0
  103. package/ios/RNSScreen.h +144 -0
  104. package/ios/RNSScreen.mm +1599 -0
  105. package/ios/RNSScreenContainer.h +45 -0
  106. package/ios/RNSScreenContainer.mm +343 -0
  107. package/ios/RNSScreenNavigationContainer.h +16 -0
  108. package/ios/RNSScreenNavigationContainer.mm +66 -0
  109. package/ios/RNSScreenStack.h +37 -0
  110. package/ios/RNSScreenStack.mm +1111 -0
  111. package/ios/RNSScreenStackAnimator.h +8 -0
  112. package/ios/RNSScreenStackAnimator.mm +320 -0
  113. package/ios/RNSScreenStackHeaderConfig.h +74 -0
  114. package/ios/RNSScreenStackHeaderConfig.mm +967 -0
  115. package/ios/RNSScreenStackHeaderSubview.h +44 -0
  116. package/ios/RNSScreenStackHeaderSubview.mm +147 -0
  117. package/ios/RNSScreenWindowTraits.h +26 -0
  118. package/ios/RNSScreenWindowTraits.mm +266 -0
  119. package/ios/RNSSearchBar.h +43 -0
  120. package/ios/RNSSearchBar.mm +465 -0
  121. package/ios/RNScreens.xcodeproj/project.pbxproj +461 -0
  122. package/ios/UIViewController+RNScreens.h +9 -0
  123. package/ios/UIViewController+RNScreens.mm +78 -0
  124. package/ios/UIWindow+RNScreens.h +9 -0
  125. package/ios/UIWindow+RNScreens.mm +17 -0
  126. package/ios/events/RNSHeaderHeightChangeEvent.h +8 -0
  127. package/ios/events/RNSHeaderHeightChangeEvent.mm +44 -0
  128. package/ios/events/RNSScreenViewEvent.h +12 -0
  129. package/ios/events/RNSScreenViewEvent.mm +59 -0
  130. package/ios/utils/RNSUIBarButtonItem.h +5 -0
  131. package/ios/utils/RNSUIBarButtonItem.mm +22 -0
  132. package/kepler-compatibility.json +8 -0
  133. package/kepler-transformed-package-info.json +3 -0
  134. package/lib/commonjs/TransitionProgressContext.js +11 -0
  135. package/lib/commonjs/TransitionProgressContext.js.map +1 -0
  136. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js +11 -0
  137. package/lib/commonjs/fabric/FullWindowOverlayNativeComponent.js.map +1 -0
  138. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js +33 -0
  139. package/lib/commonjs/fabric/ScreenContainerNativeComponent.js.map +1 -0
  140. package/lib/commonjs/fabric/ScreenNativeComponent.js +70 -0
  141. package/lib/commonjs/fabric/ScreenNativeComponent.js.map +1 -0
  142. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js +11 -0
  143. package/lib/commonjs/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -0
  144. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js +31 -0
  145. package/lib/commonjs/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
  146. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js +12 -0
  147. package/lib/commonjs/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
  148. package/lib/commonjs/fabric/ScreenStackNativeComponent.js +35 -0
  149. package/lib/commonjs/fabric/ScreenStackNativeComponent.js.map +1 -0
  150. package/lib/commonjs/fabric/SearchBarNativeComponent.js +19 -0
  151. package/lib/commonjs/fabric/SearchBarNativeComponent.js.map +1 -0
  152. package/lib/commonjs/index.js +147 -0
  153. package/lib/commonjs/index.js.map +1 -0
  154. package/lib/commonjs/index.native.js +407 -0
  155. package/lib/commonjs/index.native.js.map +1 -0
  156. package/lib/commonjs/native-stack/index.js +49 -0
  157. package/lib/commonjs/native-stack/index.js.map +1 -0
  158. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js +75 -0
  159. package/lib/commonjs/native-stack/navigators/createNativeStackNavigator.js.map +1 -0
  160. package/lib/commonjs/native-stack/types.js +6 -0
  161. package/lib/commonjs/native-stack/types.js.map +1 -0
  162. package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js +12 -0
  163. package/lib/commonjs/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -0
  164. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js +12 -0
  165. package/lib/commonjs/native-stack/utils/HeaderHeightContext.js.map +1 -0
  166. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js +75 -0
  167. package/lib/commonjs/native-stack/utils/SafeAreaProviderCompat.js.map +1 -0
  168. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js +35 -0
  169. package/lib/commonjs/native-stack/utils/getDefaultHeaderHeight.js.map +1 -0
  170. package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js +19 -0
  171. package/lib/commonjs/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -0
  172. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js +54 -0
  173. package/lib/commonjs/native-stack/utils/useBackPressSubscription.js.map +1 -0
  174. package/lib/commonjs/native-stack/utils/useHeaderHeight.js +19 -0
  175. package/lib/commonjs/native-stack/utils/useHeaderHeight.js.map +1 -0
  176. package/lib/commonjs/native-stack/views/FontProcessor.js +21 -0
  177. package/lib/commonjs/native-stack/views/FontProcessor.js.map +1 -0
  178. package/lib/commonjs/native-stack/views/HeaderConfig.js +141 -0
  179. package/lib/commonjs/native-stack/views/HeaderConfig.js.map +1 -0
  180. package/lib/commonjs/native-stack/views/NativeStackView.js +354 -0
  181. package/lib/commonjs/native-stack/views/NativeStackView.js.map +1 -0
  182. package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js +12 -0
  183. package/lib/commonjs/reanimated/ReanimatedHeaderHeightContext.js.map +1 -0
  184. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js +101 -0
  185. package/lib/commonjs/reanimated/ReanimatedNativeStackScreen.js.map +1 -0
  186. package/lib/commonjs/reanimated/ReanimatedScreen.js +22 -0
  187. package/lib/commonjs/reanimated/ReanimatedScreen.js.map +1 -0
  188. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js +47 -0
  189. package/lib/commonjs/reanimated/ReanimatedScreenProvider.js.map +1 -0
  190. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js +12 -0
  191. package/lib/commonjs/reanimated/ReanimatedTransitionProgressContext.js.map +1 -0
  192. package/lib/commonjs/reanimated/index.js +28 -0
  193. package/lib/commonjs/reanimated/index.js.map +1 -0
  194. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js +19 -0
  195. package/lib/commonjs/reanimated/useReanimatedHeaderHeight.js.map +1 -0
  196. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js +19 -0
  197. package/lib/commonjs/reanimated/useReanimatedTransitionProgress.js.map +1 -0
  198. package/lib/commonjs/types.js +6 -0
  199. package/lib/commonjs/types.js.map +1 -0
  200. package/lib/commonjs/useTransitionProgress.js +19 -0
  201. package/lib/commonjs/useTransitionProgress.js.map +1 -0
  202. package/lib/commonjs/utils.js +21 -0
  203. package/lib/commonjs/utils.js.map +1 -0
  204. package/lib/module/TransitionProgressContext.js +3 -0
  205. package/lib/module/TransitionProgressContext.js.map +1 -0
  206. package/lib/module/fabric/FullWindowOverlayNativeComponent.js +4 -0
  207. package/lib/module/fabric/FullWindowOverlayNativeComponent.js.map +1 -0
  208. package/lib/module/fabric/ScreenContainerNativeComponent.js +25 -0
  209. package/lib/module/fabric/ScreenContainerNativeComponent.js.map +1 -0
  210. package/lib/module/fabric/ScreenNativeComponent.js +63 -0
  211. package/lib/module/fabric/ScreenNativeComponent.js.map +1 -0
  212. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js +4 -0
  213. package/lib/module/fabric/ScreenNavigationContainerNativeComponent.js.map +1 -0
  214. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js +23 -0
  215. package/lib/module/fabric/ScreenStackHeaderConfigNativeComponent.js.map +1 -0
  216. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js +7 -0
  217. package/lib/module/fabric/ScreenStackHeaderSubviewNativeComponent.js.map +1 -0
  218. package/lib/module/fabric/ScreenStackNativeComponent.js +28 -0
  219. package/lib/module/fabric/ScreenStackNativeComponent.js.map +1 -0
  220. package/lib/module/fabric/SearchBarNativeComponent.js +10 -0
  221. package/lib/module/fabric/SearchBarNativeComponent.js.map +1 -0
  222. package/lib/module/index.js +67 -0
  223. package/lib/module/index.js.map +1 -0
  224. package/lib/module/index.native.js +410 -0
  225. package/lib/module/index.native.js.map +1 -0
  226. package/lib/module/native-stack/index.js +22 -0
  227. package/lib/module/native-stack/index.js.map +1 -0
  228. package/lib/module/native-stack/navigators/createNativeStackNavigator.js +72 -0
  229. package/lib/module/native-stack/navigators/createNativeStackNavigator.js.map +1 -0
  230. package/lib/module/native-stack/types.js +2 -0
  231. package/lib/module/native-stack/types.js.map +1 -0
  232. package/lib/module/native-stack/utils/AnimatedHeaderHeightContext.js +4 -0
  233. package/lib/module/native-stack/utils/AnimatedHeaderHeightContext.js.map +1 -0
  234. package/lib/module/native-stack/utils/HeaderHeightContext.js +4 -0
  235. package/lib/module/native-stack/utils/HeaderHeightContext.js.map +1 -0
  236. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js +68 -0
  237. package/lib/module/native-stack/utils/SafeAreaProviderCompat.js.map +1 -0
  238. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js +29 -0
  239. package/lib/module/native-stack/utils/getDefaultHeaderHeight.js.map +1 -0
  240. package/lib/module/native-stack/utils/useAnimatedHeaderHeight.js +10 -0
  241. package/lib/module/native-stack/utils/useAnimatedHeaderHeight.js.map +1 -0
  242. package/lib/module/native-stack/utils/useBackPressSubscription.js +47 -0
  243. package/lib/module/native-stack/utils/useBackPressSubscription.js.map +1 -0
  244. package/lib/module/native-stack/utils/useHeaderHeight.js +10 -0
  245. package/lib/module/native-stack/utils/useHeaderHeight.js.map +1 -0
  246. package/lib/module/native-stack/views/FontProcessor.js +13 -0
  247. package/lib/module/native-stack/views/FontProcessor.js.map +1 -0
  248. package/lib/module/native-stack/views/HeaderConfig.js +132 -0
  249. package/lib/module/native-stack/views/HeaderConfig.js.map +1 -0
  250. package/lib/module/native-stack/views/NativeStackView.js +355 -0
  251. package/lib/module/native-stack/views/NativeStackView.js.map +1 -0
  252. package/lib/module/reanimated/ReanimatedHeaderHeightContext.js +5 -0
  253. package/lib/module/reanimated/ReanimatedHeaderHeightContext.js.map +1 -0
  254. package/lib/module/reanimated/ReanimatedNativeStackScreen.js +97 -0
  255. package/lib/module/reanimated/ReanimatedNativeStackScreen.js.map +1 -0
  256. package/lib/module/reanimated/ReanimatedScreen.js +17 -0
  257. package/lib/module/reanimated/ReanimatedScreen.js.map +1 -0
  258. package/lib/module/reanimated/ReanimatedScreenProvider.js +40 -0
  259. package/lib/module/reanimated/ReanimatedScreenProvider.js.map +1 -0
  260. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js +5 -0
  261. package/lib/module/reanimated/ReanimatedTransitionProgressContext.js.map +1 -0
  262. package/lib/module/reanimated/index.js +4 -0
  263. package/lib/module/reanimated/index.js.map +1 -0
  264. package/lib/module/reanimated/useReanimatedHeaderHeight.js +10 -0
  265. package/lib/module/reanimated/useReanimatedHeaderHeight.js.map +1 -0
  266. package/lib/module/reanimated/useReanimatedTransitionProgress.js +10 -0
  267. package/lib/module/reanimated/useReanimatedTransitionProgress.js.map +1 -0
  268. package/lib/module/types.js +2 -0
  269. package/lib/module/types.js.map +1 -0
  270. package/lib/module/useTransitionProgress.js +10 -0
  271. package/lib/module/useTransitionProgress.js.map +1 -0
  272. package/lib/module/utils.js +14 -0
  273. package/lib/module/utils.js.map +1 -0
  274. package/lib/typescript/TransitionProgressContext.d.ts +9 -0
  275. package/lib/typescript/fabric/FullWindowOverlayNativeComponent.d.ts +7 -0
  276. package/lib/typescript/fabric/ScreenContainerNativeComponent.d.ts +5 -0
  277. package/lib/typescript/fabric/ScreenNativeComponent.d.ts +66 -0
  278. package/lib/typescript/fabric/ScreenNavigationContainerNativeComponent.d.ts +7 -0
  279. package/lib/typescript/fabric/ScreenStackHeaderConfigNativeComponent.d.ts +33 -0
  280. package/lib/typescript/fabric/ScreenStackHeaderSubviewNativeComponent.d.ts +10 -0
  281. package/lib/typescript/fabric/ScreenStackNativeComponent.d.ts +8 -0
  282. package/lib/typescript/fabric/SearchBarNativeComponent.d.ts +49 -0
  283. package/lib/typescript/index.d.ts +33 -0
  284. package/lib/typescript/index.native.d.ts +2 -0
  285. package/lib/typescript/native-stack/index.d.ts +19 -0
  286. package/lib/typescript/native-stack/navigators/createNativeStackNavigator.d.ts +6 -0
  287. package/lib/typescript/native-stack/types.d.ts +438 -0
  288. package/lib/typescript/native-stack/utils/AnimatedHeaderHeightContext.d.ts +4 -0
  289. package/lib/typescript/native-stack/utils/HeaderHeightContext.d.ts +3 -0
  290. package/lib/typescript/native-stack/utils/SafeAreaProviderCompat.d.ts +11 -0
  291. package/lib/typescript/native-stack/utils/getDefaultHeaderHeight.d.ts +7 -0
  292. package/lib/typescript/native-stack/utils/useAnimatedHeaderHeight.d.ts +1 -0
  293. package/lib/typescript/native-stack/utils/useBackPressSubscription.d.ts +16 -0
  294. package/lib/typescript/native-stack/utils/useHeaderHeight.d.ts +1 -0
  295. package/lib/typescript/native-stack/views/FontProcessor.d.ts +1 -0
  296. package/lib/typescript/native-stack/views/HeaderConfig.d.ts +8 -0
  297. package/lib/typescript/native-stack/views/NativeStackView.d.ts +10 -0
  298. package/lib/typescript/reanimated/ReanimatedHeaderHeightContext.d.ts +4 -0
  299. package/lib/typescript/reanimated/ReanimatedNativeStackScreen.d.ts +5 -0
  300. package/lib/typescript/reanimated/ReanimatedScreen.d.ts +5 -0
  301. package/lib/typescript/reanimated/ReanimatedScreenProvider.d.ts +2 -0
  302. package/lib/typescript/reanimated/ReanimatedTransitionProgressContext.d.ts +9 -0
  303. package/lib/typescript/reanimated/index.d.ts +3 -0
  304. package/lib/typescript/reanimated/useReanimatedHeaderHeight.d.ts +3 -0
  305. package/lib/typescript/reanimated/useReanimatedTransitionProgress.d.ts +11 -0
  306. package/lib/typescript/types.d.ts +612 -0
  307. package/lib/typescript/useTransitionProgress.d.ts +5 -0
  308. package/lib/typescript/utils.d.ts +3 -0
  309. package/native-stack/README.md +814 -0
  310. package/native-stack/package.json +6 -0
  311. package/package.json +1 -0
  312. package/react-native.config.js +42 -0
  313. package/reanimated/package.json +6 -0
  314. package/src/TransitionProgressContext.tsx +12 -0
  315. package/src/fabric/FullWindowOverlayNativeComponent.ts +7 -0
  316. package/src/fabric/ScreenContainerNativeComponent.ts +28 -0
  317. package/src/fabric/ScreenNativeComponent.ts +158 -0
  318. package/src/fabric/ScreenNavigationContainerNativeComponent.ts +10 -0
  319. package/src/fabric/ScreenStackHeaderConfigNativeComponent.ts +61 -0
  320. package/src/fabric/ScreenStackHeaderSubviewNativeComponent.ts +22 -0
  321. package/src/fabric/ScreenStackNativeComponent.ts +33 -0
  322. package/src/fabric/SearchBarNativeComponent.ts +79 -0
  323. package/src/index.native.tsx +599 -0
  324. package/src/index.tsx +119 -0
  325. package/src/native-stack/index.tsx +27 -0
  326. package/src/native-stack/navigators/createNativeStackNavigator.tsx +107 -0
  327. package/src/native-stack/types.tsx +486 -0
  328. package/src/native-stack/utils/AnimatedHeaderHeightContext.tsx +8 -0
  329. package/src/native-stack/utils/HeaderHeightContext.tsx +5 -0
  330. package/src/native-stack/utils/SafeAreaProviderCompat.tsx +78 -0
  331. package/src/native-stack/utils/getDefaultHeaderHeight.tsx +41 -0
  332. package/src/native-stack/utils/useAnimatedHeaderHeight.tsx +15 -0
  333. package/src/native-stack/utils/useBackPressSubscription.tsx +66 -0
  334. package/src/native-stack/utils/useHeaderHeight.tsx +15 -0
  335. package/src/native-stack/views/FontProcessor.tsx +14 -0
  336. package/src/native-stack/views/HeaderConfig.tsx +187 -0
  337. package/src/native-stack/views/NativeStackView.tsx +466 -0
  338. package/src/reanimated/ReanimatedHeaderHeightContext.tsx +7 -0
  339. package/src/reanimated/ReanimatedNativeStackScreen.tsx +130 -0
  340. package/src/reanimated/ReanimatedScreen.tsx +25 -0
  341. package/src/reanimated/ReanimatedScreenProvider.tsx +42 -0
  342. package/src/reanimated/ReanimatedTransitionProgressContext.tsx +13 -0
  343. package/src/reanimated/index.tsx +3 -0
  344. package/src/reanimated/useReanimatedHeaderHeight.tsx +14 -0
  345. package/src/reanimated/useReanimatedTransitionProgress.tsx +14 -0
  346. package/src/types.tsx +699 -0
  347. package/src/useTransitionProgress.tsx +15 -0
  348. package/src/utils.ts +18 -0
  349. package/windows/README.md +25 -0
  350. package/windows/RNScreens/PropertySheet.props +16 -0
  351. package/windows/RNScreens/RNScreens.cpp +66 -0
  352. package/windows/RNScreens/RNScreens.def +3 -0
  353. package/windows/RNScreens/RNScreens.h +41 -0
  354. package/windows/RNScreens/RNScreens.idl +8 -0
  355. package/windows/RNScreens/RNScreens.vcxproj +187 -0
  356. package/windows/RNScreens/RNScreens.vcxproj.filters +52 -0
  357. package/windows/RNScreens/ReactPackageProvider.cpp +30 -0
  358. package/windows/RNScreens/ReactPackageProvider.h +17 -0
  359. package/windows/RNScreens/ReactPackageProvider.idl +9 -0
  360. package/windows/RNScreens/Screen.cpp +122 -0
  361. package/windows/RNScreens/Screen.h +64 -0
  362. package/windows/RNScreens/ScreenContainer.cpp +49 -0
  363. package/windows/RNScreens/ScreenContainer.h +23 -0
  364. package/windows/RNScreens/ScreenContainerViewManager.cpp +133 -0
  365. package/windows/RNScreens/ScreenContainerViewManager.h +78 -0
  366. package/windows/RNScreens/ScreenStack.cpp +65 -0
  367. package/windows/RNScreens/ScreenStack.h +23 -0
  368. package/windows/RNScreens/ScreenStackHeaderConfig.cpp +19 -0
  369. package/windows/RNScreens/ScreenStackHeaderConfig.h +14 -0
  370. package/windows/RNScreens/ScreenStackHeaderConfigViewManager.cpp +89 -0
  371. package/windows/RNScreens/ScreenStackHeaderConfigViewManager.h +62 -0
  372. package/windows/RNScreens/ScreenStackViewManager.cpp +132 -0
  373. package/windows/RNScreens/ScreenStackViewManager.h +78 -0
  374. package/windows/RNScreens/ScreenViewManager.cpp +154 -0
  375. package/windows/RNScreens/ScreenViewManager.h +78 -0
  376. package/windows/RNScreens/packages.config +4 -0
  377. package/windows/RNScreens/pch.cpp +1 -0
  378. package/windows/RNScreens/pch.h +9 -0
  379. package/windows/RNScreens62.sln +254 -0
  380. package/windows/RNScreens63.sln +225 -0
  381. package/windows/RNScreens65.sln +144 -0
@@ -0,0 +1,132 @@
1
+ #include "pch.h"
2
+ #include "ScreenStackViewManager.h"
3
+ #include "JSValueXaml.h"
4
+ #include "NativeModules.h"
5
+ #include "Screen.h"
6
+ #include "ScreenStack.h"
7
+
8
+ namespace winrt {
9
+ using namespace Microsoft::ReactNative;
10
+ using namespace Windows::Foundation;
11
+ using namespace Windows::Foundation::Collections;
12
+ using namespace Windows::UI;
13
+ using namespace Windows::UI::Xaml;
14
+ using namespace Windows::UI::Xaml::Controls;
15
+ } // namespace winrt
16
+
17
+ namespace winrt::RNScreens::implementation {
18
+ // IViewManager
19
+ winrt::hstring ScreenStackViewManager::Name() noexcept {
20
+ return L"RNSScreenStack";
21
+ }
22
+
23
+ winrt::FrameworkElement ScreenStackViewManager::CreateView() noexcept {
24
+ return winrt::make<ScreenStack>(m_reactContext);
25
+ }
26
+
27
+ // IViewManagerRequiresNativeLayout
28
+ bool ScreenStackViewManager::RequiresNativeLayout() {
29
+ return false;
30
+ }
31
+
32
+ // IViewManagerWithChildren
33
+ void ScreenStackViewManager::AddView(
34
+ FrameworkElement parent,
35
+ UIElement child,
36
+ int64_t index) {
37
+ auto screenStack = parent.as<ScreenStack>();
38
+ if (!screenStack)
39
+ return;
40
+
41
+ auto screen = child.as<Screen>();
42
+ if (!screen)
43
+ return;
44
+
45
+ screenStack->addScreen(*screen, index);
46
+ }
47
+
48
+ void ScreenStackViewManager::RemoveAllChildren(FrameworkElement parent) {
49
+ auto screenStack = parent.as<ScreenStack>();
50
+ if (!screenStack)
51
+ return;
52
+
53
+ screenStack->removeAllChildren();
54
+ }
55
+
56
+ void ScreenStackViewManager::RemoveChildAt(
57
+ FrameworkElement parent,
58
+ int64_t index) {
59
+ auto screenStack = parent.as<ScreenStack>();
60
+ if (!screenStack)
61
+ return;
62
+
63
+ screenStack->removeChildAt(index);
64
+ }
65
+
66
+ void ScreenStackViewManager::ReplaceChild(
67
+ FrameworkElement parent,
68
+ UIElement oldChild,
69
+ UIElement newChild) {
70
+ auto screenStack = parent.as<ScreenStack>();
71
+ if (!screenStack)
72
+ return;
73
+
74
+ screenStack->replaceChild(oldChild, newChild);
75
+ }
76
+
77
+ // IViewManagerWithReactContext
78
+ winrt::IReactContext ScreenStackViewManager::ReactContext() noexcept {
79
+ return m_reactContext;
80
+ }
81
+
82
+ void ScreenStackViewManager::ReactContext(IReactContext reactContext) noexcept {
83
+ m_reactContext = reactContext;
84
+ }
85
+
86
+ // IViewManagerWithNativeProperties
87
+ IMapView<hstring, ViewManagerPropertyType>
88
+ ScreenStackViewManager::NativeProps() noexcept {
89
+ auto nativeProps =
90
+ winrt::single_threaded_map<hstring, ViewManagerPropertyType>();
91
+ return nativeProps.GetView();
92
+ }
93
+
94
+ void ScreenStackViewManager::UpdateProperties(
95
+ FrameworkElement const &view,
96
+ IJSValueReader const &propertyMapReader) noexcept {
97
+ (void)view;
98
+ const JSValueObject &propertyMap = JSValue::ReadObjectFrom(propertyMapReader);
99
+ for (auto const &pair : propertyMap) {
100
+ auto const &propertyName = pair.first;
101
+ auto const &propertyValue = pair.second;
102
+ (void)propertyName;
103
+ (void)propertyValue;
104
+ }
105
+ }
106
+
107
+ // IViewManagerWithExportedEventTypeConstants
108
+ ConstantProviderDelegate
109
+ ScreenStackViewManager::ExportedCustomBubblingEventTypeConstants() noexcept {
110
+ return nullptr;
111
+ }
112
+
113
+ ConstantProviderDelegate
114
+ ScreenStackViewManager::ExportedCustomDirectEventTypeConstants() noexcept {
115
+ return nullptr;
116
+ }
117
+
118
+ // IViewManagerWithCommands
119
+ IVectorView<hstring> ScreenStackViewManager::Commands() noexcept {
120
+ auto commands = winrt::single_threaded_vector<hstring>();
121
+ return commands.GetView();
122
+ }
123
+
124
+ void ScreenStackViewManager::DispatchCommand(
125
+ FrameworkElement const &view,
126
+ winrt::hstring const &commandId,
127
+ winrt::IJSValueReader const &commandArgsReader) noexcept {
128
+ (void)view;
129
+ (void)commandId;
130
+ (void)commandArgsReader;
131
+ }
132
+ } // namespace winrt::RNScreens::implementation
@@ -0,0 +1,78 @@
1
+ #pragma once
2
+
3
+ #include "NativeModules.h"
4
+ #include "winrt/Microsoft.ReactNative.h"
5
+
6
+ namespace winrt::RNScreens::implementation {
7
+
8
+ class ScreenStackViewManager
9
+ : public winrt::implements<
10
+ ScreenStackViewManager,
11
+ winrt::Microsoft::ReactNative::IViewManager,
12
+ winrt::Microsoft::ReactNative::IViewManagerRequiresNativeLayout,
13
+ winrt::Microsoft::ReactNative::IViewManagerWithChildren,
14
+ winrt::Microsoft::ReactNative::IViewManagerWithReactContext,
15
+ winrt::Microsoft::ReactNative::IViewManagerWithNativeProperties,
16
+ winrt::Microsoft::ReactNative::
17
+ IViewManagerWithExportedEventTypeConstants,
18
+ winrt::Microsoft::ReactNative::IViewManagerWithCommands> {
19
+ public:
20
+ ScreenStackViewManager() = default;
21
+
22
+ // IViewManager
23
+ winrt::hstring Name() noexcept;
24
+ winrt::Windows::UI::Xaml::FrameworkElement CreateView() noexcept;
25
+
26
+ // IViewManagerRequiresNativeLayout
27
+ bool RequiresNativeLayout();
28
+
29
+ // IViewManagerWithChildren
30
+ void AddView(
31
+ winrt::Windows::UI::Xaml::FrameworkElement parent,
32
+ winrt::Windows::UI::Xaml::UIElement child,
33
+ int64_t index);
34
+ void RemoveAllChildren(winrt::Windows::UI::Xaml::FrameworkElement parent);
35
+ void RemoveChildAt(
36
+ winrt::Windows::UI::Xaml::FrameworkElement parent,
37
+ int64_t index);
38
+ void ReplaceChild(
39
+ winrt::Windows::UI::Xaml::FrameworkElement parent,
40
+ winrt::Windows::UI::Xaml::UIElement oldChild,
41
+ winrt::Windows::UI::Xaml::UIElement newChild);
42
+
43
+ // IViewManagerWithReactContext
44
+ winrt::Microsoft::ReactNative::IReactContext ReactContext() noexcept;
45
+ void ReactContext(
46
+ winrt::Microsoft::ReactNative::IReactContext reactContext) noexcept;
47
+
48
+ // IViewManagerWithNativeProperties
49
+ winrt::Windows::Foundation::Collections::IMapView<
50
+ winrt::hstring,
51
+ winrt::Microsoft::ReactNative::ViewManagerPropertyType>
52
+ NativeProps() noexcept;
53
+
54
+ void UpdateProperties(
55
+ winrt::Windows::UI::Xaml::FrameworkElement const &view,
56
+ winrt::Microsoft::ReactNative::IJSValueReader const
57
+ &propertyMapReader) noexcept;
58
+
59
+ // IViewManagerWithExportedEventTypeConstants
60
+ winrt::Microsoft::ReactNative::ConstantProviderDelegate
61
+ ExportedCustomBubblingEventTypeConstants() noexcept;
62
+ winrt::Microsoft::ReactNative::ConstantProviderDelegate
63
+ ExportedCustomDirectEventTypeConstants() noexcept;
64
+
65
+ // IViewManagerWithCommands
66
+ winrt::Windows::Foundation::Collections::IVectorView<winrt::hstring>
67
+ Commands() noexcept;
68
+
69
+ void DispatchCommand(
70
+ winrt::Windows::UI::Xaml::FrameworkElement const &view,
71
+ winrt::hstring const &commandId,
72
+ winrt::Microsoft::ReactNative::IJSValueReader const
73
+ &commandArgsReader) noexcept;
74
+
75
+ private:
76
+ winrt::Microsoft::ReactNative::IReactContext m_reactContext{nullptr};
77
+ };
78
+ } // namespace winrt::RNScreens::implementation
@@ -0,0 +1,154 @@
1
+ #include "pch.h"
2
+ #include "ScreenViewManager.h"
3
+ #include "JSValueXaml.h"
4
+ #include "NativeModules.h"
5
+ #include "Screen.h"
6
+
7
+ namespace winrt {
8
+ using namespace Microsoft::ReactNative;
9
+ using namespace Windows::Foundation;
10
+ using namespace Windows::Foundation::Collections;
11
+ using namespace Windows::UI;
12
+ using namespace Windows::UI::Xaml;
13
+ using namespace Windows::UI::Xaml::Controls;
14
+ } // namespace winrt
15
+
16
+ namespace winrt::RNScreens::implementation {
17
+ // IViewManager
18
+ winrt::hstring ScreenViewManager::Name() noexcept {
19
+ return L"RNSScreen";
20
+ }
21
+
22
+ winrt::FrameworkElement ScreenViewManager::CreateView() noexcept {
23
+ return winrt::make<winrt::RNScreens::implementation::Screen>(m_reactContext);
24
+ }
25
+
26
+ // IViewManagerRequiresNativeLayout
27
+ bool ScreenViewManager::RequiresNativeLayout() {
28
+ return false;
29
+ }
30
+
31
+ // IViewManagerWithChildren
32
+ void ScreenViewManager::AddView(
33
+ FrameworkElement parent,
34
+ UIElement child,
35
+ int64_t index) {
36
+ (void)index;
37
+ auto screen = parent.try_as<Screen>();
38
+ if (!screen)
39
+ return;
40
+
41
+ screen->addView(child);
42
+ }
43
+
44
+ void ScreenViewManager::RemoveAllChildren(FrameworkElement parent) {
45
+ auto screen = parent.try_as<Screen>();
46
+ if (!screen)
47
+ return;
48
+
49
+ screen->removeAllChildren();
50
+ }
51
+
52
+ void ScreenViewManager::RemoveChildAt(FrameworkElement parent, int64_t index) {
53
+ auto screen = parent.try_as<Screen>();
54
+ if (!screen)
55
+ return;
56
+
57
+ screen->removeChildAt(index);
58
+ }
59
+
60
+ void ScreenViewManager::ReplaceChild(
61
+ FrameworkElement parent,
62
+ UIElement oldChild,
63
+ UIElement newChild) {
64
+ auto screen = parent.try_as<Screen>();
65
+ if (!screen)
66
+ return;
67
+
68
+ screen->replaceChild(oldChild, newChild);
69
+ }
70
+
71
+ // IViewManagerWithReactContext
72
+ winrt::IReactContext ScreenViewManager::ReactContext() noexcept {
73
+ return m_reactContext;
74
+ }
75
+
76
+ void ScreenViewManager::ReactContext(IReactContext reactContext) noexcept {
77
+ m_reactContext = reactContext;
78
+ }
79
+
80
+ // IViewManagerWithNativeProperties
81
+ IMapView<hstring, ViewManagerPropertyType>
82
+ ScreenViewManager::NativeProps() noexcept {
83
+ auto nativeProps =
84
+ winrt::single_threaded_map<hstring, ViewManagerPropertyType>();
85
+ nativeProps.Insert(L"stackPresentation", ViewManagerPropertyType::String);
86
+ nativeProps.Insert(L"stackAnimation", ViewManagerPropertyType::String);
87
+ nativeProps.Insert(L"gestureEnabled", ViewManagerPropertyType::Boolean);
88
+ nativeProps.Insert(L"replaceAnimation", ViewManagerPropertyType::String);
89
+ nativeProps.Insert(L"screenOrientation", ViewManagerPropertyType::String);
90
+ nativeProps.Insert(L"statusBarAnimation", ViewManagerPropertyType::String);
91
+ nativeProps.Insert(L"statusBarColor", ViewManagerPropertyType::Number);
92
+ nativeProps.Insert(L"statusBarStyle", ViewManagerPropertyType::String);
93
+ nativeProps.Insert(L"statusBarTranslucent", ViewManagerPropertyType::Boolean);
94
+ nativeProps.Insert(L"statusBarHidden", ViewManagerPropertyType::Boolean);
95
+ return nativeProps.GetView();
96
+ }
97
+
98
+ void ScreenViewManager::UpdateProperties(
99
+ FrameworkElement const &view,
100
+ IJSValueReader const &propertyMapReader) noexcept {
101
+ (void)view;
102
+ const JSValueObject &propertyMap = JSValue::ReadObjectFrom(propertyMapReader);
103
+ for (auto const &pair : propertyMap) {
104
+ auto const &propertyName = pair.first;
105
+ auto const &propertyValue = pair.second;
106
+ if (propertyValue != nullptr) {
107
+ if (propertyName == "replaceAnimation") {
108
+ auto const &value = propertyValue.AsString();
109
+ // TODO: Implement this for Windows
110
+ (void)value;
111
+ } else if (propertyName == "stackPresentation") {
112
+ auto const &value = propertyValue.AsString();
113
+ // TODO: Implement this for Windows
114
+ (void)value;
115
+ } else {
116
+ OutputDebugStringA("Unknown property in ScreenViewManager\n");
117
+ }
118
+ }
119
+ }
120
+ }
121
+
122
+ // IViewManagerWithExportedEventTypeConstants
123
+ ConstantProviderDelegate
124
+ ScreenViewManager::ExportedCustomBubblingEventTypeConstants() noexcept {
125
+ return nullptr;
126
+ }
127
+
128
+ ConstantProviderDelegate
129
+ ScreenViewManager::ExportedCustomDirectEventTypeConstants() noexcept {
130
+ return [](winrt::IJSValueWriter const &constantWriter) {
131
+ WriteCustomDirectEventTypeConstant(constantWriter, "WillAppear");
132
+ WriteCustomDirectEventTypeConstant(constantWriter, "WillDisappear");
133
+ WriteCustomDirectEventTypeConstant(constantWriter, "Appear");
134
+ WriteCustomDirectEventTypeConstant(constantWriter, "Disappear");
135
+ WriteCustomDirectEventTypeConstant(constantWriter, "Dismissed");
136
+ WriteCustomDirectEventTypeConstant(constantWriter, "FinishTransitioning");
137
+ };
138
+ }
139
+
140
+ // IViewManagerWithCommands
141
+ IVectorView<hstring> ScreenViewManager::Commands() noexcept {
142
+ auto commands = winrt::single_threaded_vector<hstring>();
143
+ return commands.GetView();
144
+ }
145
+
146
+ void ScreenViewManager::DispatchCommand(
147
+ FrameworkElement const &view,
148
+ winrt::hstring const &commandId,
149
+ winrt::IJSValueReader const &commandArgsReader) noexcept {
150
+ (void)view;
151
+ (void)commandId;
152
+ (void)commandArgsReader;
153
+ }
154
+ } // namespace winrt::RNScreens::implementation
@@ -0,0 +1,78 @@
1
+ #pragma once
2
+
3
+ #include "NativeModules.h"
4
+ #include "winrt/Microsoft.ReactNative.h"
5
+
6
+ namespace winrt::RNScreens::implementation {
7
+
8
+ class ScreenViewManager
9
+ : public winrt::implements<
10
+ ScreenViewManager,
11
+ winrt::Microsoft::ReactNative::IViewManager,
12
+ winrt::Microsoft::ReactNative::IViewManagerRequiresNativeLayout,
13
+ winrt::Microsoft::ReactNative::IViewManagerWithChildren,
14
+ winrt::Microsoft::ReactNative::IViewManagerWithReactContext,
15
+ winrt::Microsoft::ReactNative::IViewManagerWithNativeProperties,
16
+ winrt::Microsoft::ReactNative::
17
+ IViewManagerWithExportedEventTypeConstants,
18
+ winrt::Microsoft::ReactNative::IViewManagerWithCommands> {
19
+ public:
20
+ ScreenViewManager() = default;
21
+
22
+ // IViewManager
23
+ winrt::hstring Name() noexcept;
24
+ winrt::Windows::UI::Xaml::FrameworkElement CreateView() noexcept;
25
+
26
+ // IViewManagerRequiresNativeLayout
27
+ bool RequiresNativeLayout();
28
+
29
+ // IViewManagerWithChildren
30
+ void AddView(
31
+ winrt::Windows::UI::Xaml::FrameworkElement parent,
32
+ winrt::Windows::UI::Xaml::UIElement child,
33
+ int64_t index);
34
+ void RemoveAllChildren(winrt::Windows::UI::Xaml::FrameworkElement parent);
35
+ void RemoveChildAt(
36
+ winrt::Windows::UI::Xaml::FrameworkElement parent,
37
+ int64_t index);
38
+ void ReplaceChild(
39
+ winrt::Windows::UI::Xaml::FrameworkElement parent,
40
+ winrt::Windows::UI::Xaml::UIElement oldChild,
41
+ winrt::Windows::UI::Xaml::UIElement newChild);
42
+
43
+ // IViewManagerWithReactContext
44
+ winrt::Microsoft::ReactNative::IReactContext ReactContext() noexcept;
45
+ void ReactContext(
46
+ winrt::Microsoft::ReactNative::IReactContext reactContext) noexcept;
47
+
48
+ // IViewManagerWithNativeProperties
49
+ winrt::Windows::Foundation::Collections::IMapView<
50
+ winrt::hstring,
51
+ winrt::Microsoft::ReactNative::ViewManagerPropertyType>
52
+ NativeProps() noexcept;
53
+
54
+ void UpdateProperties(
55
+ winrt::Windows::UI::Xaml::FrameworkElement const &view,
56
+ winrt::Microsoft::ReactNative::IJSValueReader const
57
+ &propertyMapReader) noexcept;
58
+
59
+ // IViewManagerWithExportedEventTypeConstants
60
+ winrt::Microsoft::ReactNative::ConstantProviderDelegate
61
+ ExportedCustomBubblingEventTypeConstants() noexcept;
62
+ winrt::Microsoft::ReactNative::ConstantProviderDelegate
63
+ ExportedCustomDirectEventTypeConstants() noexcept;
64
+
65
+ // IViewManagerWithCommands
66
+ winrt::Windows::Foundation::Collections::IVectorView<winrt::hstring>
67
+ Commands() noexcept;
68
+
69
+ void DispatchCommand(
70
+ winrt::Windows::UI::Xaml::FrameworkElement const &view,
71
+ winrt::hstring const &commandId,
72
+ winrt::Microsoft::ReactNative::IJSValueReader const
73
+ &commandArgsReader) noexcept;
74
+
75
+ private:
76
+ winrt::Microsoft::ReactNative::IReactContext m_reactContext{nullptr};
77
+ };
78
+ } // namespace winrt::RNScreens::implementation
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <packages>
3
+ <package id="Microsoft.Windows.CppWinRT" version="2.0.200316.3" targetFramework="native" />
4
+ </packages>
@@ -0,0 +1 @@
1
+ #include "pch.h"
@@ -0,0 +1,9 @@
1
+ #pragma once
2
+
3
+ #include <unknwn.h>
4
+ #include <winrt/Microsoft.ReactNative.h>
5
+ #include <winrt/Windows.Foundation.Collections.h>
6
+ #include <winrt/Windows.Foundation.h>
7
+ #include <winrt/Windows.System.h>
8
+ #include <winrt/Windows.UI.Xaml.Controls.h>
9
+ #include <winrt/Windows.UI.Xaml.h>