@amazon-devices/react-native-safe-area-context 2.0.1759135970 → 8.0.9000000000-rn-83

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 (260) hide show
  1. package/README.md +6 -302
  2. package/SystemBundles/920f0b3a0c43cc93db1621b4c3a47e06a0d4ed32175c793e9934ad9c764fbc25.bundle +7374 -0
  3. package/SystemBundles/920f0b3a0c43cc93db1621b4c3a47e06a0d4ed32175c793e9934ad9c764fbc25.map +2780 -0
  4. package/SystemModules/amzn__react-native-safe-area-context-8.modules.txt +7 -0
  5. package/SystemModules/amzn__react-native-safe-area-context-8.private.modules.txt +61 -0
  6. package/SystemModules/keplerscript-system-bundle-config.json +3 -3
  7. package/android/build.gradle +103 -25
  8. package/android/gradle.properties +1 -0
  9. package/android/spotless.gradle +24 -0
  10. package/android/src/fabric/java/com/th3rdwave/safeareacontext/InsetsChangeEvent.kt +25 -0
  11. package/android/src/fabric/java/com/th3rdwave/safeareacontext/UIManagerHelperCompat.kt +14 -0
  12. package/android/src/main/AndroidManifest.xml +1 -2
  13. package/android/src/main/java/com/th3rdwave/safeareacontext/EdgeInsets.kt +3 -0
  14. package/android/src/main/java/com/th3rdwave/safeareacontext/Rect.kt +3 -0
  15. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaContextModule.kt +32 -0
  16. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaContextPackage.kt +41 -0
  17. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaProvider.kt +47 -0
  18. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaProviderManager.kt +41 -0
  19. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaUtils.kt +102 -0
  20. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.kt +155 -0
  21. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewEdges.kt +16 -0
  22. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewLocalData.kt +7 -0
  23. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewManager.kt +73 -0
  24. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewMode.kt +6 -0
  25. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewShadowNode.kt +170 -0
  26. package/android/src/main/java/com/th3rdwave/safeareacontext/SerializationUtils.kt +39 -0
  27. package/android/src/main/jni/CMakeLists.txt +87 -0
  28. package/android/src/main/jni/safeareacontext.h +17 -0
  29. package/android/src/paper/java/com/facebook/react/viewmanagers/RNCSafeAreaProviderManagerDelegate.java +31 -0
  30. package/android/src/paper/java/com/facebook/react/viewmanagers/RNCSafeAreaProviderManagerInterface.java +16 -0
  31. package/android/src/paper/java/com/facebook/react/viewmanagers/RNCSafeAreaViewManagerDelegate.java +41 -0
  32. package/android/src/paper/java/com/facebook/react/viewmanagers/RNCSafeAreaViewManagerInterface.java +20 -0
  33. package/android/src/paper/java/com/th3rdwave/safeareacontext/InsetsChangeEvent.kt +29 -0
  34. package/android/src/paper/java/com/th3rdwave/safeareacontext/NativeSafeAreaContextSpec.java +56 -0
  35. package/android/src/paper/java/com/th3rdwave/safeareacontext/UIManagerHelperCompat.kt +20 -0
  36. package/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewComponentDescriptor.h +25 -0
  37. package/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.cpp +131 -0
  38. package/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewShadowNode.h +36 -0
  39. package/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.cpp +23 -0
  40. package/common/cpp/react/renderer/components/safeareacontext/RNCSafeAreaViewState.h +56 -0
  41. package/ios/Fabric/RNCSafeAreaProviderComponentView.h +13 -0
  42. package/ios/Fabric/RNCSafeAreaProviderComponentView.mm +129 -0
  43. package/ios/Fabric/RNCSafeAreaViewComponentView.h +11 -0
  44. package/ios/Fabric/RNCSafeAreaViewComponentView.mm +153 -0
  45. package/ios/RNCSafeAreaContext.h +9 -0
  46. package/ios/RNCSafeAreaContext.mm +85 -0
  47. package/ios/{SafeAreaView/RNCSafeAreaProvider.h → RNCSafeAreaProvider.h} +4 -0
  48. package/ios/RNCSafeAreaProvider.m +102 -0
  49. package/ios/RNCSafeAreaProviderManager.m +20 -0
  50. package/ios/{SafeAreaView/RNCSafeAreaShadowView.m → RNCSafeAreaShadowView.m} +50 -36
  51. package/ios/RNCSafeAreaUtils.h +22 -0
  52. package/ios/RNCSafeAreaUtils.m +41 -0
  53. package/ios/{SafeAreaView/RNCSafeAreaView.h → RNCSafeAreaView.h} +8 -4
  54. package/ios/RNCSafeAreaView.m +168 -0
  55. package/ios/RNCSafeAreaViewEdgeMode.h +12 -0
  56. package/ios/RNCSafeAreaViewEdgeMode.m +16 -0
  57. package/ios/RNCSafeAreaViewEdges.h +15 -0
  58. package/ios/RNCSafeAreaViewEdges.m +36 -0
  59. package/ios/{SafeAreaView/RNCSafeAreaViewLocalData.h → RNCSafeAreaViewLocalData.h} +12 -1
  60. package/ios/{SafeAreaView/RNCSafeAreaViewLocalData.m → RNCSafeAreaViewLocalData.m} +4 -0
  61. package/ios/{SafeAreaView/RNCSafeAreaViewManager.m → RNCSafeAreaViewManager.m} +5 -1
  62. package/ios/RNCSafeAreaViewMode.m +15 -0
  63. package/ios/{SafeAreaView.xcodeproj → RNSafeAreaContext.xcodeproj}/project.pbxproj +70 -56
  64. package/jest/mock.tsx +59 -0
  65. package/kepler-compatibility.json +2 -2
  66. package/lib/commonjs/CompatNativeSafeAreaProvider.js +7 -8
  67. package/lib/commonjs/CompatNativeSafeAreaProvider.js.map +1 -1
  68. package/lib/commonjs/InitialWindow.js.map +1 -1
  69. package/lib/commonjs/InitialWindow.kepler.js +1 -1
  70. package/lib/commonjs/InitialWindow.kepler.js.map +1 -1
  71. package/lib/commonjs/InitialWindow.native.js +4 -4
  72. package/lib/commonjs/InitialWindow.native.js.map +1 -1
  73. package/lib/commonjs/NativeSafeAreaProvider.js +7 -125
  74. package/lib/commonjs/NativeSafeAreaProvider.js.map +1 -1
  75. package/lib/commonjs/NativeSafeAreaProvider.kepler.js +6 -2
  76. package/lib/commonjs/NativeSafeAreaProvider.kepler.js.map +1 -1
  77. package/lib/commonjs/NativeSafeAreaProvider.web.js +135 -0
  78. package/lib/commonjs/NativeSafeAreaProvider.web.js.map +1 -0
  79. package/lib/commonjs/NativeSafeAreaProvider.windows.js +6 -2
  80. package/lib/commonjs/NativeSafeAreaProvider.windows.js.map +1 -1
  81. package/lib/commonjs/SafeArea.types.js.map +1 -1
  82. package/lib/commonjs/SafeAreaContext.js +56 -36
  83. package/lib/commonjs/SafeAreaContext.js.map +1 -1
  84. package/lib/commonjs/SafeAreaView.js +40 -73
  85. package/lib/commonjs/SafeAreaView.js.map +1 -1
  86. package/lib/commonjs/SafeAreaView.kepler.js.map +1 -1
  87. package/lib/commonjs/SafeAreaView.web.js +91 -0
  88. package/lib/commonjs/SafeAreaView.web.js.map +1 -0
  89. package/lib/commonjs/SafeAreaView.windows.js.map +1 -1
  90. package/lib/commonjs/index.js +1 -0
  91. package/lib/commonjs/index.js.map +1 -1
  92. package/lib/commonjs/package.json +1 -0
  93. package/lib/commonjs/specs/NativeSafeAreaContext.js +9 -0
  94. package/lib/commonjs/specs/NativeSafeAreaContext.js.map +1 -0
  95. package/lib/commonjs/specs/NativeSafeAreaProvider.js +10 -0
  96. package/lib/commonjs/specs/NativeSafeAreaProvider.js.map +1 -0
  97. package/lib/commonjs/specs/NativeSafeAreaView.js +12 -0
  98. package/lib/commonjs/specs/NativeSafeAreaView.js.map +1 -0
  99. package/lib/module/CompatNativeSafeAreaProvider.js +8 -5
  100. package/lib/module/CompatNativeSafeAreaProvider.js.map +1 -1
  101. package/lib/module/InitialWindow.js +2 -0
  102. package/lib/module/InitialWindow.js.map +1 -1
  103. package/lib/module/InitialWindow.kepler.js +3 -1
  104. package/lib/module/InitialWindow.kepler.js.map +1 -1
  105. package/lib/module/InitialWindow.native.js +5 -4
  106. package/lib/module/InitialWindow.native.js.map +1 -1
  107. package/lib/module/NativeSafeAreaProvider.js +3 -122
  108. package/lib/module/NativeSafeAreaProvider.js.map +1 -1
  109. package/lib/module/NativeSafeAreaProvider.kepler.js +3 -2
  110. package/lib/module/NativeSafeAreaProvider.kepler.js.map +1 -1
  111. package/lib/module/NativeSafeAreaProvider.web.js +130 -0
  112. package/lib/module/NativeSafeAreaProvider.web.js.map +1 -0
  113. package/lib/module/NativeSafeAreaProvider.windows.js +3 -2
  114. package/lib/module/NativeSafeAreaProvider.windows.js.map +1 -1
  115. package/lib/module/SafeArea.types.js +2 -0
  116. package/lib/module/SafeArea.types.js.map +1 -1
  117. package/lib/module/SafeAreaContext.js +57 -33
  118. package/lib/module/SafeAreaContext.js.map +1 -1
  119. package/lib/module/SafeAreaView.js +38 -69
  120. package/lib/module/SafeAreaView.js.map +1 -1
  121. package/lib/module/SafeAreaView.kepler.js +2 -0
  122. package/lib/module/SafeAreaView.kepler.js.map +1 -1
  123. package/lib/module/SafeAreaView.web.js +86 -0
  124. package/lib/module/SafeAreaView.web.js.map +1 -0
  125. package/lib/module/SafeAreaView.windows.js +2 -0
  126. package/lib/module/SafeAreaView.windows.js.map +1 -1
  127. package/lib/module/index.js +3 -0
  128. package/lib/module/index.js.map +1 -1
  129. package/lib/module/specs/NativeSafeAreaContext.js +5 -0
  130. package/lib/module/specs/NativeSafeAreaContext.js.map +1 -0
  131. package/lib/module/specs/NativeSafeAreaProvider.js +5 -0
  132. package/lib/module/specs/NativeSafeAreaProvider.js.map +1 -0
  133. package/lib/module/specs/NativeSafeAreaView.js +7 -0
  134. package/lib/module/specs/NativeSafeAreaView.js.map +1 -0
  135. package/lib/typescript/CompatNativeSafeAreaProvider.d.ts +4 -0
  136. package/lib/typescript/CompatNativeSafeAreaProvider.d.ts.map +1 -0
  137. package/lib/typescript/{src/InitialWindow.d.ts → InitialWindow.d.ts} +2 -1
  138. package/lib/typescript/InitialWindow.d.ts.map +1 -0
  139. package/lib/typescript/{src/InitialWindow.kepler.d.ts → InitialWindow.kepler.d.ts} +1 -0
  140. package/lib/typescript/InitialWindow.kepler.d.ts.map +1 -0
  141. package/lib/typescript/{src/InitialWindow.native.d.ts → InitialWindow.native.d.ts} +2 -1
  142. package/lib/typescript/InitialWindow.native.d.ts.map +1 -0
  143. package/lib/typescript/NativeSafeAreaProvider.d.ts +3 -0
  144. package/lib/typescript/NativeSafeAreaProvider.d.ts.map +1 -0
  145. package/lib/typescript/NativeSafeAreaProvider.kepler.d.ts +2 -0
  146. package/lib/typescript/NativeSafeAreaProvider.kepler.d.ts.map +1 -0
  147. package/lib/typescript/NativeSafeAreaProvider.web.d.ts +4 -0
  148. package/lib/typescript/NativeSafeAreaProvider.web.d.ts.map +1 -0
  149. package/lib/typescript/NativeSafeAreaProvider.windows.d.ts +2 -0
  150. package/lib/typescript/NativeSafeAreaProvider.windows.d.ts.map +1 -0
  151. package/lib/typescript/SafeArea.types.d.ts +36 -0
  152. package/lib/typescript/SafeArea.types.d.ts.map +1 -0
  153. package/lib/typescript/{src/SafeAreaContext.d.ts → SafeAreaContext.d.ts} +9 -6
  154. package/lib/typescript/SafeAreaContext.d.ts.map +1 -0
  155. package/lib/typescript/SafeAreaView.d.ts +5 -0
  156. package/lib/typescript/SafeAreaView.d.ts.map +1 -0
  157. package/lib/typescript/{src/SafeAreaView.kepler.d.ts → SafeAreaView.kepler.d.ts} +1 -0
  158. package/lib/typescript/SafeAreaView.kepler.d.ts.map +1 -0
  159. package/lib/typescript/SafeAreaView.web.d.ts +4 -0
  160. package/lib/typescript/SafeAreaView.web.d.ts.map +1 -0
  161. package/lib/typescript/SafeAreaView.windows.d.ts +3 -0
  162. package/lib/typescript/SafeAreaView.windows.d.ts.map +1 -0
  163. package/lib/typescript/{src/index.d.ts → index.d.ts} +1 -0
  164. package/lib/typescript/index.d.ts.map +1 -0
  165. package/lib/typescript/specs/NativeSafeAreaContext.d.ts +23 -0
  166. package/lib/typescript/specs/NativeSafeAreaContext.d.ts.map +1 -0
  167. package/lib/typescript/specs/NativeSafeAreaProvider.d.ts +22 -0
  168. package/lib/typescript/specs/NativeSafeAreaProvider.d.ts.map +1 -0
  169. package/lib/typescript/specs/NativeSafeAreaView.d.ts +14 -0
  170. package/lib/typescript/specs/NativeSafeAreaView.d.ts.map +1 -0
  171. package/oss-attribution/attribution.txt +0 -0
  172. package/oss-attribution/licenseInfos.json +1 -0
  173. package/package.json +137 -1
  174. package/react-native-safe-area-context.podspec +26 -4
  175. package/react-native.config.js +8 -0
  176. package/src/CompatNativeSafeAreaProvider.tsx +2 -3
  177. package/src/InitialWindow.kepler.ts +1 -1
  178. package/src/InitialWindow.native.ts +5 -11
  179. package/src/InitialWindow.ts +1 -1
  180. package/src/NativeSafeAreaProvider.kepler.tsx +1 -3
  181. package/src/NativeSafeAreaProvider.tsx +2 -128
  182. package/src/NativeSafeAreaProvider.web.tsx +127 -0
  183. package/src/NativeSafeAreaProvider.windows.tsx +1 -3
  184. package/src/SafeArea.types.ts +15 -11
  185. package/src/SafeAreaContext.tsx +66 -43
  186. package/src/SafeAreaView.tsx +47 -82
  187. package/src/SafeAreaView.web.tsx +123 -0
  188. package/src/SafeAreaView.windows.tsx +2 -1
  189. package/src/index.tsx +2 -0
  190. package/src/specs/NativeSafeAreaContext.ts +23 -0
  191. package/src/specs/NativeSafeAreaProvider.ts +29 -0
  192. package/src/specs/NativeSafeAreaView.ts +17 -0
  193. package/SystemBundles/e3c0cdeab56b8b622d4f0fd5a80812eafe199fa2287d0e3a09c5e573a1035350.bundle +0 -11031
  194. package/SystemBundles/e3c0cdeab56b8b622d4f0fd5a80812eafe199fa2287d0e3a09c5e573a1035350.map +0 -1
  195. package/SystemModules/amzn__react-native-safe-area-context-2.modules.txt +0 -55
  196. package/SystemModules/amzn__react-native-safe-area-context-2.private.modules.txt +0 -91
  197. package/THIRD_PARTY_NOTICES.txt +0 -24
  198. package/android/src/main/java/com/th3rdwave/safeareacontext/EdgeInsets.java +0 -22
  199. package/android/src/main/java/com/th3rdwave/safeareacontext/InsetsChangeEvent.java +0 -33
  200. package/android/src/main/java/com/th3rdwave/safeareacontext/Rect.java +0 -22
  201. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaContextPackage.java +0 -31
  202. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaProvider.java +0 -66
  203. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaProviderManager.java +0 -94
  204. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaUtils.java +0 -82
  205. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.java +0 -159
  206. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewEdges.java +0 -8
  207. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewLocalData.java +0 -27
  208. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewManager.java +0 -72
  209. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewMode.java +0 -6
  210. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewShadowNode.java +0 -201
  211. package/android/src/main/java/com/th3rdwave/safeareacontext/SerializationUtils.java +0 -52
  212. package/ios/SafeAreaView/RCTView+SafeAreaCompat.h +0 -16
  213. package/ios/SafeAreaView/RCTView+SafeAreaCompat.m +0 -57
  214. package/ios/SafeAreaView/RNCSafeAreaProvider.m +0 -65
  215. package/ios/SafeAreaView/RNCSafeAreaProviderManager.m +0 -61
  216. package/ios/SafeAreaView/RNCSafeAreaView.m +0 -118
  217. package/ios/SafeAreaView/RNCSafeAreaViewEdges.h +0 -9
  218. package/ios/SafeAreaView/RNCSafeAreaViewEdges.m +0 -13
  219. package/ios/SafeAreaView/RNCSafeAreaViewMode.m +0 -11
  220. package/lib/commonjs/NativeSafeAreaProvider.macos.js +0 -9
  221. package/lib/commonjs/NativeSafeAreaProvider.macos.js.map +0 -1
  222. package/lib/commonjs/NativeSafeAreaProvider.native.js +0 -9
  223. package/lib/commonjs/NativeSafeAreaProvider.native.js.map +0 -1
  224. package/lib/commonjs/SafeAreaView.macos.js +0 -9
  225. package/lib/commonjs/SafeAreaView.macos.js.map +0 -1
  226. package/lib/commonjs/SafeAreaView.native.js +0 -9
  227. package/lib/commonjs/SafeAreaView.native.js.map +0 -1
  228. package/lib/commonjs/useWindowDimensions.js +0 -32
  229. package/lib/commonjs/useWindowDimensions.js.map +0 -1
  230. package/lib/module/NativeSafeAreaProvider.macos.js +0 -3
  231. package/lib/module/NativeSafeAreaProvider.macos.js.map +0 -1
  232. package/lib/module/NativeSafeAreaProvider.native.js +0 -3
  233. package/lib/module/NativeSafeAreaProvider.native.js.map +0 -1
  234. package/lib/module/SafeAreaView.macos.js +0 -3
  235. package/lib/module/SafeAreaView.macos.js.map +0 -1
  236. package/lib/module/SafeAreaView.native.js +0 -3
  237. package/lib/module/SafeAreaView.native.js.map +0 -1
  238. package/lib/module/useWindowDimensions.js +0 -26
  239. package/lib/module/useWindowDimensions.js.map +0 -1
  240. package/lib/typescript/src/CompatNativeSafeAreaProvider.d.ts +0 -2
  241. package/lib/typescript/src/NativeSafeAreaProvider.d.ts +0 -2
  242. package/lib/typescript/src/NativeSafeAreaProvider.kepler.d.ts +0 -2
  243. package/lib/typescript/src/NativeSafeAreaProvider.macos.d.ts +0 -2
  244. package/lib/typescript/src/NativeSafeAreaProvider.native.d.ts +0 -3
  245. package/lib/typescript/src/NativeSafeAreaProvider.windows.d.ts +0 -2
  246. package/lib/typescript/src/SafeArea.types.d.ts +0 -31
  247. package/lib/typescript/src/SafeAreaView.d.ts +0 -2
  248. package/lib/typescript/src/SafeAreaView.macos.d.ts +0 -2
  249. package/lib/typescript/src/SafeAreaView.native.d.ts +0 -2
  250. package/lib/typescript/src/SafeAreaView.windows.d.ts +0 -2
  251. package/lib/typescript/src/useWindowDimensions.d.ts +0 -8
  252. package/src/NativeSafeAreaProvider.macos.tsx +0 -3
  253. package/src/NativeSafeAreaProvider.native.tsx +0 -6
  254. package/src/SafeAreaView.macos.tsx +0 -3
  255. package/src/SafeAreaView.native.tsx +0 -6
  256. package/src/useWindowDimensions.tsx +0 -35
  257. /package/ios/{SafeAreaView/RNCSafeAreaProviderManager.h → RNCSafeAreaProviderManager.h} +0 -0
  258. /package/ios/{SafeAreaView/RNCSafeAreaShadowView.h → RNCSafeAreaShadowView.h} +0 -0
  259. /package/ios/{SafeAreaView/RNCSafeAreaViewManager.h → RNCSafeAreaViewManager.h} +0 -0
  260. /package/ios/{SafeAreaView/RNCSafeAreaViewMode.h → RNCSafeAreaViewMode.h} +0 -0
@@ -1,61 +0,0 @@
1
- #import "RNCSafeAreaProviderManager.h"
2
-
3
- #import "RNCSafeAreaProvider.h"
4
-
5
- @implementation RNCSafeAreaProviderManager
6
-
7
- RCT_EXPORT_MODULE(RNCSafeAreaProvider)
8
-
9
- RCT_EXPORT_VIEW_PROPERTY(onInsetsChange, RCTDirectEventBlock)
10
-
11
- + (BOOL)requiresMainQueueSetup
12
- {
13
- return YES;
14
- }
15
-
16
- - (UIView *)view
17
- {
18
- return [RNCSafeAreaProvider new];
19
- }
20
-
21
- - (NSDictionary *)constantsToExport
22
- {
23
- UIWindow* window = [[UIApplication sharedApplication] keyWindow];
24
- if (@available(iOS 11.0, *)) {
25
- UIEdgeInsets safeAreaInsets = window.safeAreaInsets;
26
- return @{
27
- @"initialWindowMetrics": @{
28
- @"insets": @{
29
- @"top": @(safeAreaInsets.top),
30
- @"right": @(safeAreaInsets.right),
31
- @"bottom": @(safeAreaInsets.bottom),
32
- @"left": @(safeAreaInsets.left),
33
- },
34
- @"frame": @{
35
- @"x": @(window.frame.origin.x),
36
- @"y": @(window.frame.origin.y),
37
- @"width": @(window.frame.size.width),
38
- @"height": @(window.frame.size.height),
39
- },
40
- }
41
- };
42
- } else {
43
- return @{ @"initialWindowMetrics": @{
44
- @"insets": @{
45
- @"top": @(20),
46
- @"right": @(0),
47
- @"bottom": @(0),
48
- @"left": @(0),
49
- },
50
- @"frame": @{
51
- @"x": @(window.frame.origin.x),
52
- @"y": @(window.frame.origin.y),
53
- @"width": @(window.frame.size.width),
54
- @"height": @(window.frame.size.height),
55
- },
56
- }
57
- } ;
58
- }
59
- }
60
-
61
- @end
@@ -1,118 +0,0 @@
1
- #import "RNCSafeAreaView.h"
2
-
3
- #import <React/RCTBridge.h>
4
- #import <React/RCTUIManager.h>
5
-
6
- #import "RNCSafeAreaViewLocalData.h"
7
- #import "RNCSafeAreaViewMode.h"
8
- #import "RNCSafeAreaViewEdges.h"
9
- #import "RCTView+SafeAreaCompat.h"
10
- #import "RNCSafeAreaProvider.h"
11
-
12
- @implementation RNCSafeAreaView {
13
- __weak RCTBridge *_bridge;
14
- UIEdgeInsets _currentSafeAreaInsets;
15
- RNCSafeAreaViewMode _mode;
16
- RNCSafeAreaViewEdges _edges;
17
- __weak UIView * _Nullable _providerView;
18
- }
19
-
20
- - (instancetype)initWithBridge:(RCTBridge *)bridge
21
- {
22
- if (self = [super initWithFrame:CGRectZero]) {
23
- _bridge = bridge;
24
- // Defaults
25
- _mode = RNCSafeAreaViewModePadding;
26
- _edges = RNCSafeAreaViewEdgesAll;
27
- }
28
-
29
- return self;
30
- }
31
-
32
- RCT_NOT_IMPLEMENTED(-(instancetype)initWithCoder : (NSCoder *)decoder)
33
- RCT_NOT_IMPLEMENTED(-(instancetype)initWithFrame : (CGRect)frame)
34
-
35
- - (NSString *)description
36
- {
37
- NSString *superDescription = [super description];
38
-
39
- // Cutting the last `>` character.
40
- if (superDescription.length > 0 && [superDescription characterAtIndex:superDescription.length - 1] == '>') {
41
- superDescription = [superDescription substringToIndex:superDescription.length - 1];
42
- }
43
-
44
- return [NSString stringWithFormat:@"%@; RNCSafeAreaInsets = %@; appliedRNCSafeAreaInsets = %@>",
45
- superDescription,
46
- NSStringFromUIEdgeInsets([_providerView safeAreaInsetsOrEmulate]),
47
- NSStringFromUIEdgeInsets(_currentSafeAreaInsets)];
48
- }
49
-
50
- - (void)safeAreaInsetsDidChange
51
- {
52
- [super safeAreaInsetsDidChange];
53
- [self invalidateSafeAreaInsets];
54
- }
55
-
56
- - (void)layoutSubviews
57
- {
58
- [super layoutSubviews];
59
-
60
- if (!self.nativeSafeAreaSupport) {
61
- [self invalidateSafeAreaInsets];
62
- }
63
- }
64
-
65
- - (void)didMoveToWindow
66
- {
67
- _providerView = [self findNearestProvider];
68
- [self invalidateSafeAreaInsets];
69
- }
70
-
71
- - (void)invalidateSafeAreaInsets
72
- {
73
- if (_providerView == nil) {
74
- return;
75
- }
76
- UIEdgeInsets safeAreaInsets = [_providerView safeAreaInsetsOrEmulate];
77
-
78
- if (UIEdgeInsetsEqualToEdgeInsetsWithThreshold(safeAreaInsets, _currentSafeAreaInsets, 1.0 / RCTScreenScale())) {
79
- return;
80
- }
81
-
82
- _currentSafeAreaInsets = safeAreaInsets;
83
- [self updateLocalData];
84
- }
85
-
86
- - (UIView *)findNearestProvider
87
- {
88
- UIView *current = self.reactSuperview;
89
- while (current != nil) {
90
- if ([current isKindOfClass:RNCSafeAreaProvider.class] ) {
91
- return current;
92
- }
93
- current = current.reactSuperview;
94
- }
95
- return self;
96
- }
97
-
98
- - (void)updateLocalData
99
- {
100
- RNCSafeAreaViewLocalData *localData = [[RNCSafeAreaViewLocalData alloc] initWithInsets:_currentSafeAreaInsets
101
- mode:_mode
102
- edges:_edges];
103
- [_bridge.uiManager setLocalData:localData forView:self];
104
- }
105
-
106
- - (void)setMode:(RNCSafeAreaViewMode)mode
107
- {
108
- _mode = mode;
109
- [self updateLocalData];
110
- }
111
-
112
- - (void)setEdges:(RNCSafeAreaViewEdges)edges
113
- {
114
- _edges = edges;
115
- [self updateLocalData];
116
- }
117
-
118
- @end
@@ -1,9 +0,0 @@
1
- #import <Foundation/Foundation.h>
2
-
3
- typedef NS_ENUM(NSInteger, RNCSafeAreaViewEdges) {
4
- RNCSafeAreaViewEdgesTop = 0b1000,
5
- RNCSafeAreaViewEdgesRight = 0b0100,
6
- RNCSafeAreaViewEdgesBottom = 0b0010,
7
- RNCSafeAreaViewEdgesLeft = 0b0001,
8
- RNCSafeAreaViewEdgesAll = 0b1111,
9
- };
@@ -1,13 +0,0 @@
1
- #import <React/RCTConvert.h>
2
- #import "RNCSafeAreaViewEdges.h"
3
-
4
- @implementation RCTConvert (RNCSafeAreaView)
5
-
6
- RCT_MULTI_ENUM_CONVERTER(RNCSafeAreaViewEdges, (@{
7
- @"top": @(RNCSafeAreaViewEdgesTop),
8
- @"right": @(RNCSafeAreaViewEdgesRight),
9
- @"bottom": @(RNCSafeAreaViewEdgesBottom),
10
- @"left": @(RNCSafeAreaViewEdgesLeft),
11
- }), RNCSafeAreaViewEdgesAll, integerValue);
12
-
13
- @end
@@ -1,11 +0,0 @@
1
- #import <React/RCTConvert.h>
2
- #import "RNCSafeAreaViewMode.h"
3
-
4
- @implementation RCTConvert (RNCSafeAreaView)
5
-
6
- RCT_MULTI_ENUM_CONVERTER(RNCSafeAreaViewMode, (@{
7
- @"padding": @(RNCSafeAreaViewModePadding),
8
- @"margin": @(RNCSafeAreaViewModeMargin),
9
- }), RNCSafeAreaViewModePadding, integerValue);
10
-
11
- @end
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _CompatNativeSafeAreaProvider = require("./CompatNativeSafeAreaProvider");
8
- var _default = exports.default = _CompatNativeSafeAreaProvider.CompatNativeSafeAreaProvider;
9
- //# sourceMappingURL=NativeSafeAreaProvider.macos.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_CompatNativeSafeAreaProvider","require","_default","exports","default","CompatNativeSafeAreaProvider"],"sources":["NativeSafeAreaProvider.macos.tsx"],"sourcesContent":["import { CompatNativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';\n\nexport default CompatNativeSafeAreaProvider;\n"],"mappings":";;;;;;AAAA,IAAAA,6BAAA,GAAAC,OAAA;AAA8E,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAE/DC,0DAA4B","ignoreList":[]}
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _reactNative = require("react-native");
8
- var _default = exports.default = (0, _reactNative.requireNativeComponent)('RNCSafeAreaProvider');
9
- //# sourceMappingURL=NativeSafeAreaProvider.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","_default","exports","default","requireNativeComponent"],"sources":["NativeSafeAreaProvider.native.tsx"],"sourcesContent":["import { requireNativeComponent } from 'react-native';\nimport { NativeSafeAreaProviderProps } from './SafeArea.types';\n\nexport default requireNativeComponent<NativeSafeAreaProviderProps>(\n 'RNCSafeAreaProvider',\n);"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAAsD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAGvC,IAAAC,mCAAsB,EACjC,qBACJ,CAAC","ignoreList":[]}
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SafeAreaView = void 0;
7
- var _reactNative = require("react-native");
8
- const SafeAreaView = exports.SafeAreaView = _reactNative.View;
9
- //# sourceMappingURL=SafeAreaView.macos.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","SafeAreaView","exports","View"],"sources":["SafeAreaView.macos.tsx"],"sourcesContent":["import { View } from 'react-native';\n\nexport const SafeAreaView = View;\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEO,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAGE,iBAAI","ignoreList":[]}
@@ -1,9 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.SafeAreaView = void 0;
7
- var _reactNative = require("react-native");
8
- const SafeAreaView = exports.SafeAreaView = (0, _reactNative.requireNativeComponent)('RNCSafeAreaView');
9
- //# sourceMappingURL=SafeAreaView.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","SafeAreaView","exports","requireNativeComponent"],"sources":["SafeAreaView.native.tsx"],"sourcesContent":["import { requireNativeComponent } from 'react-native';\nimport { NativeSafeAreaViewProps } from './SafeArea.types';\n\nexport const SafeAreaView = requireNativeComponent<NativeSafeAreaViewProps>(\n 'RNCSafeAreaView',\n);"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAGO,MAAMC,YAAY,GAAAC,OAAA,CAAAD,YAAA,GAAG,IAAAE,mCAAsB,EAC9C,iBACJ,CAAC","ignoreList":[]}
@@ -1,32 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = useWindowDimensions;
7
- var _reactNative = require("react-native");
8
- var _react = require("react");
9
- // Copied from https://github.com/facebook/react-native/blob/8d57691a/Libraries/Utilities/useWindowDimensions.js
10
- // for compatibility with React Native < 0.61.
11
- function useWindowDimensions() {
12
- const [dimensions, setDimensions] = (0, _react.useState)(() => _reactNative.Dimensions.get('window'));
13
- (0, _react.useEffect)(() => {
14
- function handleChange({
15
- window
16
- }) {
17
- if (dimensions.width !== window.width || dimensions.height !== window.height || dimensions.scale !== window.scale || dimensions.fontScale !== window.fontScale) {
18
- setDimensions(window);
19
- }
20
- }
21
- const subscription = _reactNative.Dimensions.addEventListener('change', handleChange);
22
- // We might have missed an update between calling `get` in render and
23
- // `addEventListener` in this handler, so we set it here. If there was
24
- // no change, React will filter out this update as a no-op.
25
- handleChange({
26
- window: _reactNative.Dimensions.get('window')
27
- });
28
- return () => subscription.remove();
29
- }, [dimensions]);
30
- return dimensions;
31
- }
32
- //# sourceMappingURL=useWindowDimensions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["_reactNative","require","_react","useWindowDimensions","dimensions","setDimensions","useState","Dimensions","get","useEffect","handleChange","window","width","height","scale","fontScale","subscription","addEventListener","remove"],"sources":["useWindowDimensions.tsx"],"sourcesContent":["import { Dimensions } from 'react-native';\nimport { useEffect, useState } from 'react';\n\ntype DisplayMetrics = {\n width: number;\n height: number;\n scale: number;\n fontScale: number;\n};\n\n// Copied from https://github.com/facebook/react-native/blob/8d57691a/Libraries/Utilities/useWindowDimensions.js\n// for compatibility with React Native < 0.61.\nexport default function useWindowDimensions(): DisplayMetrics {\n const [dimensions, setDimensions] = useState(() => Dimensions.get('window'));\n useEffect(() => {\n function handleChange({ window }: { window: DisplayMetrics }) {\n if (\n dimensions.width !== window.width ||\n dimensions.height !== window.height ||\n dimensions.scale !== window.scale ||\n dimensions.fontScale !== window.fontScale\n ) {\n setDimensions(window);\n }\n }\n const subscription = Dimensions.addEventListener('change', handleChange);\n // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n handleChange({ window: Dimensions.get('window') });\n\n return () => subscription.remove();\n }, [dimensions]);\n return dimensions;\n}\n"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAD,OAAA;AASA;AACA;AACe,SAASE,mBAAmBA,CAAA,EAAmB;EAC5D,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,MAAMC,uBAAU,CAACC,GAAG,CAAC,QAAQ,CAAC,CAAC;EAC5E,IAAAC,gBAAS,EAAC,MAAM;IACd,SAASC,YAAYA,CAAC;MAAEC;IAAmC,CAAC,EAAE;MAC5D,IACEP,UAAU,CAACQ,KAAK,KAAKD,MAAM,CAACC,KAAK,IACjCR,UAAU,CAACS,MAAM,KAAKF,MAAM,CAACE,MAAM,IACnCT,UAAU,CAACU,KAAK,KAAKH,MAAM,CAACG,KAAK,IACjCV,UAAU,CAACW,SAAS,KAAKJ,MAAM,CAACI,SAAS,EACzC;QACAV,aAAa,CAACM,MAAM,CAAC;MACvB;IACF;IACA,MAAMK,YAAY,GAAGT,uBAAU,CAACU,gBAAgB,CAAC,QAAQ,EAAEP,YAAY,CAAC;IACxE;IACA;IACA;IACAA,YAAY,CAAC;MAAEC,MAAM,EAAEJ,uBAAU,CAACC,GAAG,CAAC,QAAQ;IAAE,CAAC,CAAC;IAElD,OAAO,MAAMQ,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,CAACd,UAAU,CAAC,CAAC;EAChB,OAAOA,UAAU;AACnB","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- import { CompatNativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';
2
- export default CompatNativeSafeAreaProvider;
3
- //# sourceMappingURL=NativeSafeAreaProvider.macos.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["CompatNativeSafeAreaProvider"],"sources":["NativeSafeAreaProvider.macos.tsx"],"sourcesContent":["import { CompatNativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';\n\nexport default CompatNativeSafeAreaProvider;\n"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,gCAAgC;AAE7E,eAAeA,4BAA4B","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- import { requireNativeComponent } from 'react-native';
2
- export default requireNativeComponent('RNCSafeAreaProvider');
3
- //# sourceMappingURL=NativeSafeAreaProvider.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["requireNativeComponent"],"sources":["NativeSafeAreaProvider.native.tsx"],"sourcesContent":["import { requireNativeComponent } from 'react-native';\nimport { NativeSafeAreaProviderProps } from './SafeArea.types';\n\nexport default requireNativeComponent<NativeSafeAreaProviderProps>(\n 'RNCSafeAreaProvider',\n);"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,cAAc;AAGrD,eAAeA,sBAAsB,CACjC,qBACJ,CAAC","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- import { View } from 'react-native';
2
- export const SafeAreaView = View;
3
- //# sourceMappingURL=SafeAreaView.macos.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["View","SafeAreaView"],"sources":["SafeAreaView.macos.tsx"],"sourcesContent":["import { View } from 'react-native';\n\nexport const SafeAreaView = View;\n"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,OAAO,MAAMC,YAAY,GAAGD,IAAI","ignoreList":[]}
@@ -1,3 +0,0 @@
1
- import { requireNativeComponent } from 'react-native';
2
- export const SafeAreaView = requireNativeComponent('RNCSafeAreaView');
3
- //# sourceMappingURL=SafeAreaView.native.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["requireNativeComponent","SafeAreaView"],"sources":["SafeAreaView.native.tsx"],"sourcesContent":["import { requireNativeComponent } from 'react-native';\nimport { NativeSafeAreaViewProps } from './SafeArea.types';\n\nexport const SafeAreaView = requireNativeComponent<NativeSafeAreaViewProps>(\n 'RNCSafeAreaView',\n);"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,cAAc;AAGrD,OAAO,MAAMC,YAAY,GAAGD,sBAAsB,CAC9C,iBACJ,CAAC","ignoreList":[]}
@@ -1,26 +0,0 @@
1
- import { Dimensions } from 'react-native';
2
- import { useEffect, useState } from 'react';
3
- // Copied from https://github.com/facebook/react-native/blob/8d57691a/Libraries/Utilities/useWindowDimensions.js
4
- // for compatibility with React Native < 0.61.
5
- export default function useWindowDimensions() {
6
- const [dimensions, setDimensions] = useState(() => Dimensions.get('window'));
7
- useEffect(() => {
8
- function handleChange({
9
- window
10
- }) {
11
- if (dimensions.width !== window.width || dimensions.height !== window.height || dimensions.scale !== window.scale || dimensions.fontScale !== window.fontScale) {
12
- setDimensions(window);
13
- }
14
- }
15
- const subscription = Dimensions.addEventListener('change', handleChange);
16
- // We might have missed an update between calling `get` in render and
17
- // `addEventListener` in this handler, so we set it here. If there was
18
- // no change, React will filter out this update as a no-op.
19
- handleChange({
20
- window: Dimensions.get('window')
21
- });
22
- return () => subscription.remove();
23
- }, [dimensions]);
24
- return dimensions;
25
- }
26
- //# sourceMappingURL=useWindowDimensions.js.map
@@ -1 +0,0 @@
1
- {"version":3,"names":["Dimensions","useEffect","useState","useWindowDimensions","dimensions","setDimensions","get","handleChange","window","width","height","scale","fontScale","subscription","addEventListener","remove"],"sources":["useWindowDimensions.tsx"],"sourcesContent":["import { Dimensions } from 'react-native';\nimport { useEffect, useState } from 'react';\n\ntype DisplayMetrics = {\n width: number;\n height: number;\n scale: number;\n fontScale: number;\n};\n\n// Copied from https://github.com/facebook/react-native/blob/8d57691a/Libraries/Utilities/useWindowDimensions.js\n// for compatibility with React Native < 0.61.\nexport default function useWindowDimensions(): DisplayMetrics {\n const [dimensions, setDimensions] = useState(() => Dimensions.get('window'));\n useEffect(() => {\n function handleChange({ window }: { window: DisplayMetrics }) {\n if (\n dimensions.width !== window.width ||\n dimensions.height !== window.height ||\n dimensions.scale !== window.scale ||\n dimensions.fontScale !== window.fontScale\n ) {\n setDimensions(window);\n }\n }\n const subscription = Dimensions.addEventListener('change', handleChange);\n // We might have missed an update between calling `get` in render and\n // `addEventListener` in this handler, so we set it here. If there was\n // no change, React will filter out this update as a no-op.\n handleChange({ window: Dimensions.get('window') });\n\n return () => subscription.remove();\n }, [dimensions]);\n return dimensions;\n}\n"],"mappings":"AAAA,SAASA,UAAU,QAAQ,cAAc;AACzC,SAASC,SAAS,EAAEC,QAAQ,QAAQ,OAAO;AAS3C;AACA;AACA,eAAe,SAASC,mBAAmBA,CAAA,EAAmB;EAC5D,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGH,QAAQ,CAAC,MAAMF,UAAU,CAACM,GAAG,CAAC,QAAQ,CAAC,CAAC;EAC5EL,SAAS,CAAC,MAAM;IACd,SAASM,YAAYA,CAAC;MAAEC;IAAmC,CAAC,EAAE;MAC5D,IACEJ,UAAU,CAACK,KAAK,KAAKD,MAAM,CAACC,KAAK,IACjCL,UAAU,CAACM,MAAM,KAAKF,MAAM,CAACE,MAAM,IACnCN,UAAU,CAACO,KAAK,KAAKH,MAAM,CAACG,KAAK,IACjCP,UAAU,CAACQ,SAAS,KAAKJ,MAAM,CAACI,SAAS,EACzC;QACAP,aAAa,CAACG,MAAM,CAAC;MACvB;IACF;IACA,MAAMK,YAAY,GAAGb,UAAU,CAACc,gBAAgB,CAAC,QAAQ,EAAEP,YAAY,CAAC;IACxE;IACA;IACA;IACAA,YAAY,CAAC;MAAEC,MAAM,EAAER,UAAU,CAACM,GAAG,CAAC,QAAQ;IAAE,CAAC,CAAC;IAElD,OAAO,MAAMO,YAAY,CAACE,MAAM,CAAC,CAAC;EACpC,CAAC,EAAE,CAACX,UAAU,CAAC,CAAC;EAChB,OAAOA,UAAU;AACnB","ignoreList":[]}
@@ -1,2 +0,0 @@
1
- import { NativeSafeAreaProviderProps } from './SafeArea.types';
2
- export declare function CompatNativeSafeAreaProvider({ children, style, onInsetsChange, }: NativeSafeAreaProviderProps): JSX.Element;
@@ -1,2 +0,0 @@
1
- import { NativeSafeAreaProviderProps } from './SafeArea.types';
2
- export default function NativeSafeAreaView({ children, style, onInsetsChange, }: NativeSafeAreaProviderProps): JSX.Element;
@@ -1,2 +0,0 @@
1
- import { CompatNativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';
2
- export default CompatNativeSafeAreaProvider;
@@ -1,2 +0,0 @@
1
- import { CompatNativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';
2
- export default CompatNativeSafeAreaProvider;
@@ -1,3 +0,0 @@
1
- import { NativeSafeAreaProviderProps } from './SafeArea.types';
2
- declare const _default: import("react-native").HostComponent<NativeSafeAreaProviderProps>;
3
- export default _default;
@@ -1,2 +0,0 @@
1
- import { CompatNativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';
2
- export default CompatNativeSafeAreaProvider;
@@ -1,31 +0,0 @@
1
- /// <reference types="react" />
2
- import { NativeSyntheticEvent, StyleProp, ViewProps, ViewStyle } from 'react-native';
3
- export type Edge = 'top' | 'right' | 'bottom' | 'left';
4
- export interface EdgeInsets {
5
- top: number;
6
- right: number;
7
- bottom: number;
8
- left: number;
9
- }
10
- export interface Rect {
11
- x: number;
12
- y: number;
13
- width: number;
14
- height: number;
15
- }
16
- export interface Metrics {
17
- insets: EdgeInsets;
18
- frame: Rect;
19
- }
20
- export type InsetChangedEvent = NativeSyntheticEvent<Metrics>;
21
- export type InsetChangeNativeCallback = (event: InsetChangedEvent) => void;
22
- export interface NativeSafeAreaProviderProps {
23
- children?: React.ReactNode;
24
- style?: StyleProp<ViewStyle>;
25
- onInsetsChange: InsetChangeNativeCallback;
26
- }
27
- export type NativeSafeAreaViewProps = ViewProps & {
28
- children?: React.ReactNode;
29
- mode?: 'padding' | 'margin';
30
- edges?: ReadonlyArray<Edge>;
31
- };
@@ -1,2 +0,0 @@
1
- import { NativeSafeAreaViewProps } from './SafeArea.types';
2
- export declare function SafeAreaView({ style, mode, edges, ...rest }: NativeSafeAreaViewProps): JSX.Element;
@@ -1,2 +0,0 @@
1
- import { View } from 'react-native';
2
- export declare const SafeAreaView: typeof View;
@@ -1,2 +0,0 @@
1
- import { NativeSafeAreaViewProps } from './SafeArea.types';
2
- export declare const SafeAreaView: import("react-native").HostComponent<NativeSafeAreaViewProps>;
@@ -1,2 +0,0 @@
1
- import { View } from 'react-native';
2
- export declare const SafeAreaView: typeof View;
@@ -1,8 +0,0 @@
1
- type DisplayMetrics = {
2
- width: number;
3
- height: number;
4
- scale: number;
5
- fontScale: number;
6
- };
7
- export default function useWindowDimensions(): DisplayMetrics;
8
- export {};
@@ -1,3 +0,0 @@
1
- import { CompatNativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';
2
-
3
- export default CompatNativeSafeAreaProvider;
@@ -1,6 +0,0 @@
1
- import { requireNativeComponent } from 'react-native';
2
- import { NativeSafeAreaProviderProps } from './SafeArea.types';
3
-
4
- export default requireNativeComponent<NativeSafeAreaProviderProps>(
5
- 'RNCSafeAreaProvider',
6
- );
@@ -1,3 +0,0 @@
1
- import { View } from 'react-native';
2
-
3
- export const SafeAreaView = View;
@@ -1,6 +0,0 @@
1
- import { requireNativeComponent } from 'react-native';
2
- import { NativeSafeAreaViewProps } from './SafeArea.types';
3
-
4
- export const SafeAreaView = requireNativeComponent<NativeSafeAreaViewProps>(
5
- 'RNCSafeAreaView',
6
- );
@@ -1,35 +0,0 @@
1
- import { Dimensions } from 'react-native';
2
- import { useEffect, useState } from 'react';
3
-
4
- type DisplayMetrics = {
5
- width: number;
6
- height: number;
7
- scale: number;
8
- fontScale: number;
9
- };
10
-
11
- // Copied from https://github.com/facebook/react-native/blob/8d57691a/Libraries/Utilities/useWindowDimensions.js
12
- // for compatibility with React Native < 0.61.
13
- export default function useWindowDimensions(): DisplayMetrics {
14
- const [dimensions, setDimensions] = useState(() => Dimensions.get('window'));
15
- useEffect(() => {
16
- function handleChange({ window }: { window: DisplayMetrics }) {
17
- if (
18
- dimensions.width !== window.width ||
19
- dimensions.height !== window.height ||
20
- dimensions.scale !== window.scale ||
21
- dimensions.fontScale !== window.fontScale
22
- ) {
23
- setDimensions(window);
24
- }
25
- }
26
- const subscription = Dimensions.addEventListener('change', handleChange);
27
- // We might have missed an update between calling `get` in render and
28
- // `addEventListener` in this handler, so we set it here. If there was
29
- // no change, React will filter out this update as a no-op.
30
- handleChange({ window: Dimensions.get('window') });
31
-
32
- return () => subscription.remove();
33
- }, [dimensions]);
34
- return dimensions;
35
- }