@amazon-devices/react-native-safe-area-context 2.0.1759135970 → 2.0.9000000001

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 (134) hide show
  1. package/SystemBundles/{e3c0cdeab56b8b622d4f0fd5a80812eafe199fa2287d0e3a09c5e573a1035350.bundle → 51fc85bf8d38b1dffede0d601b4549191dcfd495b78de3007c0b6f0f183163ac.bundle} +868 -3472
  2. package/SystemBundles/51fc85bf8d38b1dffede0d601b4549191dcfd495b78de3007c0b6f0f183163ac.map +3579 -0
  3. package/SystemModules/amzn__react-native-safe-area-context-2.modules.txt +1 -37
  4. package/SystemModules/amzn__react-native-safe-area-context-2.private.modules.txt +32 -40
  5. package/kepler-compatibility.json +3 -2
  6. package/lib/commonjs/CompatNativeSafeAreaProvider.js +1 -2
  7. package/lib/commonjs/CompatNativeSafeAreaProvider.js.map +1 -1
  8. package/lib/commonjs/InitialWindow.js.map +1 -1
  9. package/lib/commonjs/InitialWindow.kepler.js.map +1 -1
  10. package/lib/commonjs/InitialWindow.native.js.map +1 -1
  11. package/lib/commonjs/NativeSafeAreaProvider.js +4 -2
  12. package/lib/commonjs/NativeSafeAreaProvider.js.map +1 -1
  13. package/lib/commonjs/NativeSafeAreaProvider.kepler.js.map +1 -1
  14. package/lib/commonjs/NativeSafeAreaProvider.macos.js.map +1 -1
  15. package/lib/commonjs/NativeSafeAreaProvider.native.js.map +1 -1
  16. package/lib/commonjs/NativeSafeAreaProvider.windows.js.map +1 -1
  17. package/lib/commonjs/SafeArea.types.js.map +1 -1
  18. package/lib/commonjs/SafeAreaContext.js +3 -5
  19. package/lib/commonjs/SafeAreaContext.js.map +1 -1
  20. package/lib/commonjs/SafeAreaView.js +1 -2
  21. package/lib/commonjs/SafeAreaView.js.map +1 -1
  22. package/lib/commonjs/SafeAreaView.kepler.js.map +1 -1
  23. package/lib/commonjs/SafeAreaView.macos.js.map +1 -1
  24. package/lib/commonjs/SafeAreaView.native.js.map +1 -1
  25. package/lib/commonjs/SafeAreaView.windows.js.map +1 -1
  26. package/lib/commonjs/index.js.map +1 -1
  27. package/lib/commonjs/useWindowDimensions.js.map +1 -1
  28. package/lib/module/CompatNativeSafeAreaProvider.js.map +1 -1
  29. package/lib/module/InitialWindow.js.map +1 -1
  30. package/lib/module/InitialWindow.kepler.js.map +1 -1
  31. package/lib/module/InitialWindow.native.js.map +1 -1
  32. package/lib/module/NativeSafeAreaProvider.js +2 -0
  33. package/lib/module/NativeSafeAreaProvider.js.map +1 -1
  34. package/lib/module/NativeSafeAreaProvider.kepler.js.map +1 -1
  35. package/lib/module/NativeSafeAreaProvider.macos.js.map +1 -1
  36. package/lib/module/NativeSafeAreaProvider.native.js.map +1 -1
  37. package/lib/module/NativeSafeAreaProvider.windows.js.map +1 -1
  38. package/lib/module/SafeArea.types.js.map +1 -1
  39. package/lib/module/SafeAreaContext.js +2 -3
  40. package/lib/module/SafeAreaContext.js.map +1 -1
  41. package/lib/module/SafeAreaView.js.map +1 -1
  42. package/lib/module/SafeAreaView.kepler.js.map +1 -1
  43. package/lib/module/SafeAreaView.macos.js.map +1 -1
  44. package/lib/module/SafeAreaView.native.js.map +1 -1
  45. package/lib/module/SafeAreaView.windows.js.map +1 -1
  46. package/lib/module/index.js.map +1 -1
  47. package/lib/module/useWindowDimensions.js.map +1 -1
  48. package/lib/typescript/CompatNativeSafeAreaProvider.d.ts +4 -0
  49. package/lib/typescript/CompatNativeSafeAreaProvider.d.ts.map +1 -0
  50. package/lib/typescript/{src/InitialWindow.d.ts → InitialWindow.d.ts} +2 -1
  51. package/lib/typescript/InitialWindow.d.ts.map +1 -0
  52. package/lib/typescript/{src/InitialWindow.kepler.d.ts → InitialWindow.kepler.d.ts} +1 -0
  53. package/lib/typescript/InitialWindow.kepler.d.ts.map +1 -0
  54. package/lib/typescript/{src/InitialWindow.native.d.ts → InitialWindow.native.d.ts} +1 -0
  55. package/lib/typescript/InitialWindow.native.d.ts.map +1 -0
  56. package/lib/typescript/NativeSafeAreaProvider.d.ts +4 -0
  57. package/lib/typescript/NativeSafeAreaProvider.d.ts.map +1 -0
  58. package/lib/typescript/{src/NativeSafeAreaProvider.kepler.d.ts → NativeSafeAreaProvider.kepler.d.ts} +1 -0
  59. package/lib/typescript/NativeSafeAreaProvider.kepler.d.ts.map +1 -0
  60. package/lib/typescript/{src/NativeSafeAreaProvider.macos.d.ts → NativeSafeAreaProvider.macos.d.ts} +1 -0
  61. package/lib/typescript/NativeSafeAreaProvider.macos.d.ts.map +1 -0
  62. package/lib/typescript/{src/NativeSafeAreaProvider.native.d.ts → NativeSafeAreaProvider.native.d.ts} +1 -0
  63. package/lib/typescript/NativeSafeAreaProvider.native.d.ts.map +1 -0
  64. package/lib/typescript/{src/NativeSafeAreaProvider.windows.d.ts → NativeSafeAreaProvider.windows.d.ts} +1 -0
  65. package/lib/typescript/NativeSafeAreaProvider.windows.d.ts.map +1 -0
  66. package/lib/typescript/{src/SafeArea.types.d.ts → SafeArea.types.d.ts} +2 -1
  67. package/lib/typescript/SafeArea.types.d.ts.map +1 -0
  68. package/lib/typescript/{src/SafeAreaContext.d.ts → SafeAreaContext.d.ts} +4 -3
  69. package/lib/typescript/SafeAreaContext.d.ts.map +1 -0
  70. package/lib/typescript/SafeAreaView.d.ts +4 -0
  71. package/lib/typescript/SafeAreaView.d.ts.map +1 -0
  72. package/lib/typescript/{src/SafeAreaView.kepler.d.ts → SafeAreaView.kepler.d.ts} +1 -0
  73. package/lib/typescript/SafeAreaView.kepler.d.ts.map +1 -0
  74. package/lib/typescript/{src/SafeAreaView.macos.d.ts → SafeAreaView.macos.d.ts} +1 -0
  75. package/lib/typescript/SafeAreaView.macos.d.ts.map +1 -0
  76. package/lib/typescript/{src/SafeAreaView.native.d.ts → SafeAreaView.native.d.ts} +1 -0
  77. package/lib/typescript/SafeAreaView.native.d.ts.map +1 -0
  78. package/lib/typescript/{src/SafeAreaView.windows.d.ts → SafeAreaView.windows.d.ts} +1 -0
  79. package/lib/typescript/SafeAreaView.windows.d.ts.map +1 -0
  80. package/lib/typescript/{src/index.d.ts → index.d.ts} +1 -0
  81. package/lib/typescript/index.d.ts.map +1 -0
  82. package/lib/typescript/{src/useWindowDimensions.d.ts → useWindowDimensions.d.ts} +1 -0
  83. package/lib/typescript/useWindowDimensions.d.ts.map +1 -0
  84. package/package.json +1 -1
  85. package/src/InitialWindow.ts +1 -1
  86. package/src/NativeSafeAreaProvider.tsx +3 -1
  87. package/src/SafeArea.types.ts +1 -1
  88. package/src/SafeAreaContext.tsx +2 -2
  89. package/src/SafeAreaView.tsx +1 -1
  90. package/src/__tests__/InitialWindow-test.tsx +47 -0
  91. package/src/__tests__/SafeAreaContext-test.tsx +121 -0
  92. package/src/__tests__/SafeAreaView-test.tsx +35 -0
  93. package/src/__tests__/__snapshots__/SafeAreaContext-test.tsx.snap +183 -0
  94. package/src/__tests__/__snapshots__/SafeAreaView-test.tsx.snap +43 -0
  95. package/SystemBundles/e3c0cdeab56b8b622d4f0fd5a80812eafe199fa2287d0e3a09c5e573a1035350.map +0 -1
  96. package/android/build.gradle +0 -46
  97. package/android/src/main/AndroidManifest.xml +0 -6
  98. package/android/src/main/java/com/th3rdwave/safeareacontext/EdgeInsets.java +0 -22
  99. package/android/src/main/java/com/th3rdwave/safeareacontext/InsetsChangeEvent.java +0 -33
  100. package/android/src/main/java/com/th3rdwave/safeareacontext/Rect.java +0 -22
  101. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaContextPackage.java +0 -31
  102. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaProvider.java +0 -66
  103. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaProviderManager.java +0 -94
  104. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaUtils.java +0 -82
  105. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaView.java +0 -159
  106. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewEdges.java +0 -8
  107. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewLocalData.java +0 -27
  108. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewManager.java +0 -72
  109. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewMode.java +0 -6
  110. package/android/src/main/java/com/th3rdwave/safeareacontext/SafeAreaViewShadowNode.java +0 -201
  111. package/android/src/main/java/com/th3rdwave/safeareacontext/SerializationUtils.java +0 -52
  112. package/ios/SafeAreaView/RCTView+SafeAreaCompat.h +0 -16
  113. package/ios/SafeAreaView/RCTView+SafeAreaCompat.m +0 -57
  114. package/ios/SafeAreaView/RNCSafeAreaProvider.h +0 -13
  115. package/ios/SafeAreaView/RNCSafeAreaProvider.m +0 -65
  116. package/ios/SafeAreaView/RNCSafeAreaProviderManager.h +0 -9
  117. package/ios/SafeAreaView/RNCSafeAreaProviderManager.m +0 -61
  118. package/ios/SafeAreaView/RNCSafeAreaShadowView.h +0 -9
  119. package/ios/SafeAreaView/RNCSafeAreaShadowView.m +0 -180
  120. package/ios/SafeAreaView/RNCSafeAreaView.h +0 -21
  121. package/ios/SafeAreaView/RNCSafeAreaView.m +0 -118
  122. package/ios/SafeAreaView/RNCSafeAreaViewEdges.h +0 -9
  123. package/ios/SafeAreaView/RNCSafeAreaViewEdges.m +0 -13
  124. package/ios/SafeAreaView/RNCSafeAreaViewLocalData.h +0 -18
  125. package/ios/SafeAreaView/RNCSafeAreaViewLocalData.m +0 -16
  126. package/ios/SafeAreaView/RNCSafeAreaViewManager.h +0 -9
  127. package/ios/SafeAreaView/RNCSafeAreaViewManager.m +0 -25
  128. package/ios/SafeAreaView/RNCSafeAreaViewMode.h +0 -7
  129. package/ios/SafeAreaView/RNCSafeAreaViewMode.m +0 -11
  130. package/ios/SafeAreaView.xcodeproj/project.pbxproj +0 -338
  131. package/lib/typescript/src/CompatNativeSafeAreaProvider.d.ts +0 -2
  132. package/lib/typescript/src/NativeSafeAreaProvider.d.ts +0 -2
  133. package/lib/typescript/src/SafeAreaView.d.ts +0 -2
  134. package/react-native-safe-area-context.podspec +0 -19
@@ -1 +1 @@
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
+ {"version":3,"names":["CompatNativeSafeAreaProvider"],"sourceRoot":"../../src","sources":["NativeSafeAreaProvider.macos.tsx"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,gCAAgC;AAE7E,eAAeA,4BAA4B","ignoreList":[]}
@@ -1 +1 @@
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
+ {"version":3,"names":["requireNativeComponent"],"sourceRoot":"../../src","sources":["NativeSafeAreaProvider.native.tsx"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,cAAc;AAGrD,eAAeA,sBAAsB,CACjC,qBACJ,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["CompatNativeSafeAreaProvider"],"sources":["NativeSafeAreaProvider.windows.tsx"],"sourcesContent":["import { CompatNativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';\n\nexport default CompatNativeSafeAreaProvider;\n"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,gCAAgC;AAE7E,eAAeA,4BAA4B","ignoreList":[]}
1
+ {"version":3,"names":["CompatNativeSafeAreaProvider"],"sourceRoot":"../../src","sources":["NativeSafeAreaProvider.windows.tsx"],"mappings":"AAAA,SAASA,4BAA4B,QAAQ,gCAAgC;AAE7E,eAAeA,4BAA4B","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["SafeArea.types.ts"],"sourcesContent":["import {\n NativeSyntheticEvent,\n StyleProp,\n ViewProps,\n ViewStyle,\n} from 'react-native';\n\nexport type Edge = 'top' | 'right' | 'bottom' | 'left';\n\nexport interface EdgeInsets {\n top: number;\n right: number;\n bottom: number;\n left: number;\n}\n\nexport interface Rect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\nexport interface Metrics {\n insets: EdgeInsets;\n frame: Rect;\n}\n\nexport type InsetChangedEvent = NativeSyntheticEvent<Metrics>;\n\nexport type InsetChangeNativeCallback = (event: InsetChangedEvent) => void;\n\nexport interface NativeSafeAreaProviderProps {\n children?: React.ReactNode;\n style?: StyleProp<ViewStyle>;\n onInsetsChange: InsetChangeNativeCallback;\n}\n\nexport type NativeSafeAreaViewProps = ViewProps & {\n children?: React.ReactNode;\n mode?: 'padding' | 'margin';\n edges?: ReadonlyArray<Edge>;\n};\n"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["SafeArea.types.ts"],"mappings":"","ignoreList":[]}
@@ -12,11 +12,10 @@ export function SafeAreaProvider({
12
12
  initialSafeAreaInsets,
13
13
  style
14
14
  }) {
15
- var _ref, _ref2, _initialMetrics$inset, _ref3, _initialMetrics$frame;
16
15
  const parentInsets = useParentSafeAreaInsets();
17
16
  const parentFrame = useParentSafeAreaFrame();
18
- const [insets, setInsets] = React.useState((_ref = (_ref2 = (_initialMetrics$inset = initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.insets) !== null && _initialMetrics$inset !== void 0 ? _initialMetrics$inset : initialSafeAreaInsets) !== null && _ref2 !== void 0 ? _ref2 : parentInsets) !== null && _ref !== void 0 ? _ref : null);
19
- const [frame, setFrame] = React.useState((_ref3 = (_initialMetrics$frame = initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.frame) !== null && _initialMetrics$frame !== void 0 ? _initialMetrics$frame : parentFrame) !== null && _ref3 !== void 0 ? _ref3 : {
17
+ const [insets, setInsets] = React.useState((initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.insets) ?? initialSafeAreaInsets ?? parentInsets ?? null);
18
+ const [frame, setFrame] = React.useState((initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.frame) ?? parentFrame ?? {
20
19
  // Backwards compat so we render anyway if we don't have frame.
21
20
  x: 0,
22
21
  y: 0,
@@ -1 +1 @@
1
- {"version":3,"names":["React","Dimensions","StyleSheet","NativeSafeAreaProvider","SafeAreaInsetsContext","createContext","displayName","SafeAreaFrameContext","SafeAreaProvider","children","initialMetrics","initialSafeAreaInsets","style","_ref","_ref2","_initialMetrics$inset","_ref3","_initialMetrics$frame","parentInsets","useParentSafeAreaInsets","parentFrame","useParentSafeAreaFrame","insets","setInsets","useState","frame","setFrame","x","y","width","get","height","onInsetsChange","useCallback","event","nativeEvent","nextFrame","nextInsets","bottom","left","right","top","createElement","styles","fill","Provider","value","create","flex","useContext","useSafeAreaInsets","safeArea","Error","useSafeAreaFrame","withSafeAreaInsets","WrappedComponent","forwardRef","props","ref","SafeAreaConsumer","_extends","useSafeArea","Consumer","SafeAreaContext"],"sources":["SafeAreaContext.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Dimensions, StyleProp, StyleSheet, ViewStyle } from 'react-native';\nimport NativeSafeAreaProvider from './NativeSafeAreaProvider';\nimport { EdgeInsets, InsetChangedEvent, Metrics, Rect } from './SafeArea.types';\n\nexport const SafeAreaInsetsContext = React.createContext<EdgeInsets | null>(\n null,\n);\nSafeAreaInsetsContext.displayName = 'SafeAreaInsetsContext';\n\nexport const SafeAreaFrameContext = React.createContext<Rect | null>(null);\nSafeAreaFrameContext.displayName = 'SafeAreaFrameContext';\n\nexport interface SafeAreaViewProps {\n children?: React.ReactNode;\n initialMetrics?: Metrics | null;\n /**\n * @deprecated\n */\n initialSafeAreaInsets?: EdgeInsets | null;\n style?: StyleProp<ViewStyle>;\n}\n\nexport function SafeAreaProvider({\n children,\n initialMetrics,\n initialSafeAreaInsets,\n style,\n}: SafeAreaViewProps) {\n const parentInsets = useParentSafeAreaInsets();\n const parentFrame = useParentSafeAreaFrame();\n const [insets, setInsets] = React.useState<EdgeInsets | null>(\n initialMetrics?.insets ?? initialSafeAreaInsets ?? parentInsets ?? null,\n );\n const [frame, setFrame] = React.useState<Rect>(\n initialMetrics?.frame ??\n parentFrame ?? {\n // Backwards compat so we render anyway if we don't have frame.\n x: 0,\n y: 0,\n width: Dimensions.get('window').width,\n height: Dimensions.get('window').height,\n },\n );\n const onInsetsChange = React.useCallback(\n (event: InsetChangedEvent) => {\n const {\n nativeEvent: { frame: nextFrame, insets: nextInsets },\n } = event;\n\n if (\n // Backwards compat with old native code that won't send frame.\n nextFrame &&\n (nextFrame.height !== frame.height ||\n nextFrame.width !== frame.width ||\n nextFrame.x !== frame.x ||\n nextFrame.y !== frame.y)\n ) {\n setFrame(nextFrame);\n }\n\n if (\n !insets ||\n nextInsets.bottom !== insets.bottom ||\n nextInsets.left !== insets.left ||\n nextInsets.right !== insets.right ||\n nextInsets.top !== insets.top\n ) {\n setInsets(nextInsets);\n }\n },\n [frame, insets],\n );\n\n return (\n <NativeSafeAreaProvider\n style={[styles.fill, style]}\n onInsetsChange={onInsetsChange}\n >\n {insets != null ? (\n <SafeAreaFrameContext.Provider value={frame}>\n <SafeAreaInsetsContext.Provider value={insets}>\n {children}\n </SafeAreaInsetsContext.Provider>\n </SafeAreaFrameContext.Provider>\n ) : null}\n </NativeSafeAreaProvider>\n );\n}\n\nconst styles = StyleSheet.create({\n fill: { flex: 1 },\n});\n\nfunction useParentSafeAreaInsets(): EdgeInsets | null {\n return React.useContext(SafeAreaInsetsContext);\n}\n\nfunction useParentSafeAreaFrame(): Rect | null {\n return React.useContext(SafeAreaFrameContext);\n}\n\nexport function useSafeAreaInsets(): EdgeInsets {\n const safeArea = React.useContext(SafeAreaInsetsContext);\n if (safeArea == null) {\n throw new Error(\n 'No safe area insets value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.',\n );\n }\n return safeArea;\n}\n\nexport function useSafeAreaFrame(): Rect {\n const frame = React.useContext(SafeAreaFrameContext);\n if (frame == null) {\n throw new Error(\n 'No safe area frame value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.',\n );\n }\n return frame;\n}\n\nexport function withSafeAreaInsets<T>(\n WrappedComponent: React.ComponentType<T>,\n) {\n return React.forwardRef((props: T, ref: React.Ref<T>) => (\n <SafeAreaConsumer>\n {(insets) => <WrappedComponent {...props} insets={insets} ref={ref} />}\n </SafeAreaConsumer>\n ));\n}\n\n/**\n * @deprecated\n */\nexport function useSafeArea(): EdgeInsets {\n return useSafeAreaInsets();\n}\n\n/**\n * @deprecated\n */\nexport const SafeAreaConsumer = SafeAreaInsetsContext.Consumer;\n\n/**\n * @deprecated\n */\nexport const SafeAreaContext = SafeAreaInsetsContext;\n"],"mappings":";AAAA,OAAO,KAAKA,KAAK,MAAM,OAAO;AAC9B,SAASC,UAAU,EAAaC,UAAU,QAAmB,cAAc;AAC3E,OAAOC,sBAAsB,MAAM,0BAA0B;AAG7D,OAAO,MAAMC,qBAAqB,gBAAGJ,KAAK,CAACK,aAAa,CACtD,IACF,CAAC;AACDD,qBAAqB,CAACE,WAAW,GAAG,uBAAuB;AAE3D,OAAO,MAAMC,oBAAoB,gBAAGP,KAAK,CAACK,aAAa,CAAc,IAAI,CAAC;AAC1EE,oBAAoB,CAACD,WAAW,GAAG,sBAAsB;AAYzD,OAAO,SAASE,gBAAgBA,CAAC;EAC/BC,QAAQ;EACRC,cAAc;EACdC,qBAAqB;EACrBC;AACiB,CAAC,EAAE;EAAA,IAAAC,IAAA,EAAAC,KAAA,EAAAC,qBAAA,EAAAC,KAAA,EAAAC,qBAAA;EACpB,MAAMC,YAAY,GAAGC,uBAAuB,CAAC,CAAC;EAC9C,MAAMC,WAAW,GAAGC,sBAAsB,CAAC,CAAC;EAC5C,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGvB,KAAK,CAACwB,QAAQ,EAAAX,IAAA,IAAAC,KAAA,IAAAC,qBAAA,GACxCL,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEY,MAAM,cAAAP,qBAAA,cAAAA,qBAAA,GAAIJ,qBAAqB,cAAAG,KAAA,cAAAA,KAAA,GAAII,YAAY,cAAAL,IAAA,cAAAA,IAAA,GAAI,IACrE,CAAC;EACD,MAAM,CAACY,KAAK,EAAEC,QAAQ,CAAC,GAAG1B,KAAK,CAACwB,QAAQ,EAAAR,KAAA,IAAAC,qBAAA,GACtCP,cAAc,aAAdA,cAAc,uBAAdA,cAAc,CAAEe,KAAK,cAAAR,qBAAA,cAAAA,qBAAA,GACnBG,WAAW,cAAAJ,KAAA,cAAAA,KAAA,GAAI;IACb;IACAW,CAAC,EAAE,CAAC;IACJC,CAAC,EAAE,CAAC;IACJC,KAAK,EAAE5B,UAAU,CAAC6B,GAAG,CAAC,QAAQ,CAAC,CAACD,KAAK;IACrCE,MAAM,EAAE9B,UAAU,CAAC6B,GAAG,CAAC,QAAQ,CAAC,CAACC;EACnC,CACJ,CAAC;EACD,MAAMC,cAAc,GAAGhC,KAAK,CAACiC,WAAW,CACrCC,KAAwB,IAAK;IAC5B,MAAM;MACJC,WAAW,EAAE;QAAEV,KAAK,EAAEW,SAAS;QAAEd,MAAM,EAAEe;MAAW;IACtD,CAAC,GAAGH,KAAK;IAET;IACE;IACAE,SAAS,KACRA,SAAS,CAACL,MAAM,KAAKN,KAAK,CAACM,MAAM,IAChCK,SAAS,CAACP,KAAK,KAAKJ,KAAK,CAACI,KAAK,IAC/BO,SAAS,CAACT,CAAC,KAAKF,KAAK,CAACE,CAAC,IACvBS,SAAS,CAACR,CAAC,KAAKH,KAAK,CAACG,CAAC,CAAC,EAC1B;MACAF,QAAQ,CAACU,SAAS,CAAC;IACrB;IAEA,IACE,CAACd,MAAM,IACPe,UAAU,CAACC,MAAM,KAAKhB,MAAM,CAACgB,MAAM,IACnCD,UAAU,CAACE,IAAI,KAAKjB,MAAM,CAACiB,IAAI,IAC/BF,UAAU,CAACG,KAAK,KAAKlB,MAAM,CAACkB,KAAK,IACjCH,UAAU,CAACI,GAAG,KAAKnB,MAAM,CAACmB,GAAG,EAC7B;MACAlB,SAAS,CAACc,UAAU,CAAC;IACvB;EACF,CAAC,EACD,CAACZ,KAAK,EAAEH,MAAM,CAChB,CAAC;EAED,oBACEtB,KAAA,CAAA0C,aAAA,CAACvC,sBAAsB;IACrBS,KAAK,EAAE,CAAC+B,MAAM,CAACC,IAAI,EAAEhC,KAAK,CAAE;IAC5BoB,cAAc,EAAEA;EAAe,GAE9BV,MAAM,IAAI,IAAI,gBACbtB,KAAA,CAAA0C,aAAA,CAACnC,oBAAoB,CAACsC,QAAQ;IAACC,KAAK,EAAErB;EAAM,gBAC1CzB,KAAA,CAAA0C,aAAA,CAACtC,qBAAqB,CAACyC,QAAQ;IAACC,KAAK,EAAExB;EAAO,GAC3Cb,QAC6B,CACH,CAAC,GAC9B,IACkB,CAAC;AAE7B;AAEA,MAAMkC,MAAM,GAAGzC,UAAU,CAAC6C,MAAM,CAAC;EAC/BH,IAAI,EAAE;IAAEI,IAAI,EAAE;EAAE;AAClB,CAAC,CAAC;AAEF,SAAS7B,uBAAuBA,CAAA,EAAsB;EACpD,OAAOnB,KAAK,CAACiD,UAAU,CAAC7C,qBAAqB,CAAC;AAChD;AAEA,SAASiB,sBAAsBA,CAAA,EAAgB;EAC7C,OAAOrB,KAAK,CAACiD,UAAU,CAAC1C,oBAAoB,CAAC;AAC/C;AAEA,OAAO,SAAS2C,iBAAiBA,CAAA,EAAe;EAC9C,MAAMC,QAAQ,GAAGnD,KAAK,CAACiD,UAAU,CAAC7C,qBAAqB,CAAC;EACxD,IAAI+C,QAAQ,IAAI,IAAI,EAAE;IACpB,MAAM,IAAIC,KAAK,CACb,+GACF,CAAC;EACH;EACA,OAAOD,QAAQ;AACjB;AAEA,OAAO,SAASE,gBAAgBA,CAAA,EAAS;EACvC,MAAM5B,KAAK,GAAGzB,KAAK,CAACiD,UAAU,CAAC1C,oBAAoB,CAAC;EACpD,IAAIkB,KAAK,IAAI,IAAI,EAAE;IACjB,MAAM,IAAI2B,KAAK,CACb,8GACF,CAAC;EACH;EACA,OAAO3B,KAAK;AACd;AAEA,OAAO,SAAS6B,kBAAkBA,CAChCC,gBAAwC,EACxC;EACA,oBAAOvD,KAAK,CAACwD,UAAU,CAAC,CAACC,KAAQ,EAAEC,GAAiB,kBAClD1D,KAAA,CAAA0C,aAAA,CAACiB,gBAAgB,QACbrC,MAAM,iBAAKtB,KAAA,CAAA0C,aAAA,CAACa,gBAAgB,EAAAK,QAAA,KAAKH,KAAK;IAAEnC,MAAM,EAAEA,MAAO;IAACoC,GAAG,EAAEA;EAAI,EAAE,CACrD,CACnB,CAAC;AACJ;;AAEA;AACA;AACA;AACA,OAAO,SAASG,WAAWA,CAAA,EAAe;EACxC,OAAOX,iBAAiB,CAAC,CAAC;AAC5B;;AAEA;AACA;AACA;AACA,OAAO,MAAMS,gBAAgB,GAAGvD,qBAAqB,CAAC0D,QAAQ;;AAE9D;AACA;AACA;AACA,OAAO,MAAMC,eAAe,GAAG3D,qBAAqB","ignoreList":[]}
1
+ {"version":3,"names":["React","Dimensions","StyleSheet","NativeSafeAreaProvider","SafeAreaInsetsContext","createContext","displayName","SafeAreaFrameContext","SafeAreaProvider","children","initialMetrics","initialSafeAreaInsets","style","parentInsets","useParentSafeAreaInsets","parentFrame","useParentSafeAreaFrame","insets","setInsets","useState","frame","setFrame","x","y","width","get","height","onInsetsChange","useCallback","event","nativeEvent","nextFrame","nextInsets","bottom","left","right","top","createElement","styles","fill","Provider","value","create","flex","useContext","useSafeAreaInsets","safeArea","Error","useSafeAreaFrame","withSafeAreaInsets","WrappedComponent","forwardRef","props","ref","SafeAreaConsumer","_extends","useSafeArea","Consumer","SafeAreaContext"],"sourceRoot":"../../src","sources":["SafeAreaContext.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["React","View","StyleSheet","useSafeAreaInsets","TOP","RIGHT","BOTTOM","LEFT","ALL","edgeBitmaskMap","top","right","bottom","left","SafeAreaView","style","mode","edges","rest","insets","edgeBitmask","reduce","accum","edge","appliedStyle","useMemo","insetTop","insetRight","insetBottom","insetLeft","flatStyle","flatten","margin","marginVertical","marginHorizontal","marginTop","marginRight","marginBottom","marginLeft","marginStyle","padding","paddingVertical","paddingHorizontal","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingStyle","createElement","_extends"],"sources":["SafeAreaView.tsx"],"sourcesContent":["import * as React from 'react';\nimport { View, StyleSheet } from 'react-native';\nimport { useSafeAreaInsets } from './SafeAreaContext';\nimport { Edge, NativeSafeAreaViewProps } from './SafeArea.types';\n\n// prettier-ignore\nconst TOP = 0b1000,\n RIGHT = 0b0100,\n BOTTOM = 0b0010,\n LEFT = 0b0001,\n ALL = 0b1111;\n\n/* eslint-disable no-bitwise */\n\nconst edgeBitmaskMap: Record<Edge, number> = {\n top: TOP,\n right: RIGHT,\n bottom: BOTTOM,\n left: LEFT,\n};\n\nexport function SafeAreaView({\n style = {},\n mode,\n edges,\n ...rest\n }: NativeSafeAreaViewProps) {\n const insets = useSafeAreaInsets();\n\n const edgeBitmask =\n edges != null\n ? edges.reduce((accum, edge) => accum | edgeBitmaskMap[edge], 0)\n : ALL;\n\n const appliedStyle = React.useMemo(() => {\n const insetTop = edgeBitmask & TOP ? insets.top : 0;\n const insetRight = edgeBitmask & RIGHT ? insets.right : 0;\n const insetBottom = edgeBitmask & BOTTOM ? insets.bottom : 0;\n const insetLeft = edgeBitmask & LEFT ? insets.left : 0;\n\n const flatStyle = StyleSheet.flatten(style) as Record<string, number>;\n\n if (mode === 'margin') {\n const {\n margin = 0,\n marginVertical = margin,\n marginHorizontal = margin,\n marginTop = marginVertical,\n marginRight = marginHorizontal,\n marginBottom = marginVertical,\n marginLeft = marginHorizontal,\n } = flatStyle;\n\n const marginStyle = {\n marginTop: marginTop + insetTop,\n marginRight: marginRight + insetRight,\n marginBottom: marginBottom + insetBottom,\n marginLeft: marginLeft + insetLeft,\n };\n\n return [style, marginStyle];\n } else {\n const {\n padding = 0,\n paddingVertical = padding,\n paddingHorizontal = padding,\n paddingTop = paddingVertical,\n paddingRight = paddingHorizontal,\n paddingBottom = paddingVertical,\n paddingLeft = paddingHorizontal,\n } = flatStyle;\n\n const paddingStyle = {\n paddingTop: paddingTop + insetTop,\n paddingRight: paddingRight + insetRight,\n paddingBottom: paddingBottom + insetBottom,\n paddingLeft: paddingLeft + insetLeft,\n };\n\n return [style, paddingStyle];\n }\n }, [style, insets, mode, edgeBitmask]);\n\n return <View style={appliedStyle} {...rest} />;\n}"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["React","View","StyleSheet","useSafeAreaInsets","TOP","RIGHT","BOTTOM","LEFT","ALL","edgeBitmaskMap","top","right","bottom","left","SafeAreaView","style","mode","edges","rest","insets","edgeBitmask","reduce","accum","edge","appliedStyle","useMemo","insetTop","insetRight","insetBottom","insetLeft","flatStyle","flatten","margin","marginVertical","marginHorizontal","marginTop","marginRight","marginBottom","marginLeft","marginStyle","padding","paddingVertical","paddingHorizontal","paddingTop","paddingRight","paddingBottom","paddingLeft","paddingStyle","createElement","_extends"],"sourceRoot":"../../src","sources":["SafeAreaView.tsx"],"mappings":"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","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["View","SafeAreaView"],"sources":["SafeAreaView.kepler.tsx"],"sourcesContent":["import { View } from 'react-native';\n\nexport const SafeAreaView = View;"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,OAAO,MAAMC,YAAY,GAAGD,IAAI","ignoreList":[]}
1
+ {"version":3,"names":["View","SafeAreaView"],"sourceRoot":"../../src","sources":["SafeAreaView.kepler.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,OAAO,MAAMC,YAAY,GAAGD,IAAI","ignoreList":[]}
@@ -1 +1 @@
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
+ {"version":3,"names":["View","SafeAreaView"],"sourceRoot":"../../src","sources":["SafeAreaView.macos.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,OAAO,MAAMC,YAAY,GAAGD,IAAI","ignoreList":[]}
@@ -1 +1 @@
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
+ {"version":3,"names":["requireNativeComponent","SafeAreaView"],"sourceRoot":"../../src","sources":["SafeAreaView.native.tsx"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,cAAc;AAGrD,OAAO,MAAMC,YAAY,GAAGD,sBAAsB,CAC9C,iBACJ,CAAC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["View","SafeAreaView"],"sources":["SafeAreaView.windows.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
+ {"version":3,"names":["View","SafeAreaView"],"sourceRoot":"../../src","sources":["SafeAreaView.windows.tsx"],"mappings":"AAAA,SAASA,IAAI,QAAQ,cAAc;AAEnC,OAAO,MAAMC,YAAY,GAAGD,IAAI","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["index.tsx"],"sourcesContent":["export * from './SafeAreaContext';\nexport * from './SafeAreaView';\nexport * from './InitialWindow';\nexport * from './SafeArea.types';\n"],"mappings":"AAAA,cAAc,mBAAmB;AACjC,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,kBAAkB","ignoreList":[]}
1
+ {"version":3,"names":[],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,cAAc,mBAAmB;AACjC,cAAc,gBAAgB;AAC9B,cAAc,iBAAiB;AAC/B,cAAc,kBAAkB","ignoreList":[]}
@@ -1 +1 @@
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
+ {"version":3,"names":["Dimensions","useEffect","useState","useWindowDimensions","dimensions","setDimensions","get","handleChange","window","width","height","scale","fontScale","subscription","addEventListener","remove"],"sourceRoot":"../../src","sources":["useWindowDimensions.tsx"],"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":[]}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import { NativeSafeAreaProviderProps } from './SafeArea.types';
3
+ export declare function CompatNativeSafeAreaProvider({ children, style, onInsetsChange, }: NativeSafeAreaProviderProps): React.JSX.Element;
4
+ //# sourceMappingURL=CompatNativeSafeAreaProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CompatNativeSafeAreaProvider.d.ts","sourceRoot":"","sources":["../../src/CompatNativeSafeAreaProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAG/D,wBAAgB,4BAA4B,CAAC,EAC3C,QAAQ,EACR,KAAK,EACL,cAAc,GACf,EAAE,2BAA2B,qBAmB7B"}
@@ -1,6 +1,7 @@
1
- import { EdgeInsets, Metrics } from './SafeArea.types';
1
+ import type { EdgeInsets, Metrics } from './SafeArea.types';
2
2
  export declare const initialWindowMetrics: Metrics | null;
3
3
  /**
4
4
  * @deprecated
5
5
  */
6
6
  export declare const initialWindowSafeAreaInsets: EdgeInsets | null;
7
+ //# sourceMappingURL=InitialWindow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitialWindow.d.ts","sourceRoot":"","sources":["../../src/InitialWindow.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAE5D,eAAO,MAAM,oBAAoB,EAAE,OAAO,GAAG,IAAW,CAAC;AAEzD;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,UAAU,GAAG,IAAW,CAAC"}
@@ -4,3 +4,4 @@ export declare const initialWindowMetrics: Metrics | null;
4
4
  * @deprecated
5
5
  */
6
6
  export declare const initialWindowSafeAreaInsets: import("./SafeArea.types").EdgeInsets | undefined;
7
+ //# sourceMappingURL=InitialWindow.kepler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitialWindow.kepler.d.ts","sourceRoot":"","sources":["../../src/InitialWindow.kepler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAK3C,eAAO,MAAM,oBAAoB,gBAAyB,CAAC;AAC3D;;GAEG;AACH,eAAO,MAAM,2BAA2B,mDAA+B,CAAC"}
@@ -4,3 +4,4 @@ export declare const initialWindowMetrics: Metrics | null;
4
4
  * @deprecated
5
5
  */
6
6
  export declare const initialWindowSafeAreaInsets: import("./SafeArea.types").EdgeInsets | undefined;
7
+ //# sourceMappingURL=InitialWindow.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InitialWindow.native.d.ts","sourceRoot":"","sources":["../../src/InitialWindow.native.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,kBAAkB,CAAC;AAM3C,eAAO,MAAM,oBAAoB,gBAGJ,CAAC;AAE9B;;GAEG;AACH,eAAO,MAAM,2BAA2B,mDAA+B,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import type { NativeSafeAreaProviderProps } from './SafeArea.types';
3
+ export default function NativeSafeAreaView({ children, style, onInsetsChange, }: NativeSafeAreaProviderProps): React.JSX.Element;
4
+ //# sourceMappingURL=NativeSafeAreaProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeSafeAreaProvider.d.ts","sourceRoot":"","sources":["../../src/NativeSafeAreaProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;AAkBpE,MAAM,CAAC,OAAO,UAAU,kBAAkB,CAAC,EACpC,QAAQ,EACR,KAAK,EACL,cAAc,GACpB,EAAE,2BAA2B,qBAyC7B"}
@@ -1,2 +1,3 @@
1
1
  import { CompatNativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';
2
2
  export default CompatNativeSafeAreaProvider;
3
+ //# sourceMappingURL=NativeSafeAreaProvider.kepler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeSafeAreaProvider.kepler.d.ts","sourceRoot":"","sources":["../../src/NativeSafeAreaProvider.kepler.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,eAAe,4BAA4B,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { CompatNativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';
2
2
  export default CompatNativeSafeAreaProvider;
3
+ //# sourceMappingURL=NativeSafeAreaProvider.macos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeSafeAreaProvider.macos.d.ts","sourceRoot":"","sources":["../../src/NativeSafeAreaProvider.macos.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,eAAe,4BAA4B,CAAC"}
@@ -1,3 +1,4 @@
1
1
  import { NativeSafeAreaProviderProps } from './SafeArea.types';
2
2
  declare const _default: import("react-native").HostComponent<NativeSafeAreaProviderProps>;
3
3
  export default _default;
4
+ //# sourceMappingURL=NativeSafeAreaProvider.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeSafeAreaProvider.native.d.ts","sourceRoot":"","sources":["../../src/NativeSafeAreaProvider.native.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,2BAA2B,EAAE,MAAM,kBAAkB,CAAC;;AAE/D,wBAEE"}
@@ -1,2 +1,3 @@
1
1
  import { CompatNativeSafeAreaProvider } from './CompatNativeSafeAreaProvider';
2
2
  export default CompatNativeSafeAreaProvider;
3
+ //# sourceMappingURL=NativeSafeAreaProvider.windows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NativeSafeAreaProvider.windows.d.ts","sourceRoot":"","sources":["../../src/NativeSafeAreaProvider.windows.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAE9E,eAAe,4BAA4B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { NativeSyntheticEvent, StyleProp, ViewProps, ViewStyle } from 'react-native';
2
+ import type { NativeSyntheticEvent, StyleProp, ViewProps, ViewStyle } from 'react-native';
3
3
  export type Edge = 'top' | 'right' | 'bottom' | 'left';
4
4
  export interface EdgeInsets {
5
5
  top: number;
@@ -29,3 +29,4 @@ export type NativeSafeAreaViewProps = ViewProps & {
29
29
  mode?: 'padding' | 'margin';
30
30
  edges?: ReadonlyArray<Edge>;
31
31
  };
32
+ //# sourceMappingURL=SafeArea.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeArea.types.d.ts","sourceRoot":"","sources":["../../src/SafeArea.types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EACV,oBAAoB,EACpB,SAAS,EACT,SAAS,EACT,SAAS,EACV,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;AAEvD,MAAM,WAAW,UAAU;IACzB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,IAAI;IACnB,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,IAAI,CAAC;CACb;AAED,MAAM,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAE9D,MAAM,MAAM,yBAAyB,GAAG,CAAC,KAAK,EAAE,iBAAiB,KAAK,IAAI,CAAC;AAE3E,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;IAC7B,cAAc,EAAE,yBAAyB,CAAC;CAC3C;AAED,MAAM,MAAM,uBAAuB,GAAG,SAAS,GAAG;IAChD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,IAAI,CAAC,EAAE,SAAS,GAAG,QAAQ,CAAC;IAC5B,KAAK,CAAC,EAAE,aAAa,CAAC,IAAI,CAAC,CAAC;CAC7B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import { StyleProp, ViewStyle } from 'react-native';
3
- import { EdgeInsets, Metrics, Rect } from './SafeArea.types';
3
+ import type { EdgeInsets, Metrics, Rect } from './SafeArea.types';
4
4
  export declare const SafeAreaInsetsContext: React.Context<EdgeInsets | null>;
5
5
  export declare const SafeAreaFrameContext: React.Context<Rect | null>;
6
6
  export interface SafeAreaViewProps {
@@ -12,10 +12,10 @@ export interface SafeAreaViewProps {
12
12
  initialSafeAreaInsets?: EdgeInsets | null;
13
13
  style?: StyleProp<ViewStyle>;
14
14
  }
15
- export declare function SafeAreaProvider({ children, initialMetrics, initialSafeAreaInsets, style, }: SafeAreaViewProps): JSX.Element;
15
+ export declare function SafeAreaProvider({ children, initialMetrics, initialSafeAreaInsets, style, }: SafeAreaViewProps): React.JSX.Element;
16
16
  export declare function useSafeAreaInsets(): EdgeInsets;
17
17
  export declare function useSafeAreaFrame(): Rect;
18
- export declare function withSafeAreaInsets<T>(WrappedComponent: React.ComponentType<T>): React.ForwardRefExoticComponent<React.PropsWithoutRef<T> & React.RefAttributes<T>>;
18
+ export declare function withSafeAreaInsets<T>(WrappedComponent: React.ComponentType<T>): React.ForwardRefExoticComponent<Omit<any, "ref"> & React.RefAttributes<any>>;
19
19
  /**
20
20
  * @deprecated
21
21
  */
@@ -28,3 +28,4 @@ export declare const SafeAreaConsumer: React.Consumer<EdgeInsets | null>;
28
28
  * @deprecated
29
29
  */
30
30
  export declare const SafeAreaContext: React.Context<EdgeInsets | null>;
31
+ //# sourceMappingURL=SafeAreaContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeAreaContext.d.ts","sourceRoot":"","sources":["../../src/SafeAreaContext.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAc,SAAS,EAAc,SAAS,EAAE,MAAM,cAAc,CAAC;AAE5E,OAAO,KAAK,EAAE,UAAU,EAAqB,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAErF,eAAO,MAAM,qBAAqB,kCAEjC,CAAC;AAGF,eAAO,MAAM,oBAAoB,4BAAyC,CAAC;AAG3E,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IAChC;;OAEG;IACH,qBAAqB,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC;IAC1C,KAAK,CAAC,EAAE,SAAS,CAAC,SAAS,CAAC,CAAC;CAC9B;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,cAAc,EACd,qBAAqB,EACrB,KAAK,GACN,EAAE,iBAAiB,qBA4DnB;AAcD,wBAAgB,iBAAiB,IAAI,UAAU,CAQ9C;AAED,wBAAgB,gBAAgB,IAAI,IAAI,CAQvC;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAClC,gBAAgB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,gFAOzC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,UAAU,CAExC;AAED;;GAEG;AACH,eAAO,MAAM,gBAAgB,mCAAiC,CAAC;AAE/D;;GAEG;AACH,eAAO,MAAM,eAAe,kCAAwB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import * as React from 'react';
2
+ import type { NativeSafeAreaViewProps } from './SafeArea.types';
3
+ export declare function SafeAreaView({ style, mode, edges, ...rest }: NativeSafeAreaViewProps): React.JSX.Element;
4
+ //# sourceMappingURL=SafeAreaView.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeAreaView.d.ts","sourceRoot":"","sources":["../../src/SafeAreaView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAQ,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAkBtE,wBAAgB,YAAY,CAAC,EACI,KAAU,EACV,IAAI,EACJ,KAAK,EACL,GAAG,IAAI,EACV,EAAE,uBAAuB,qBA0DtD"}
@@ -1,2 +1,3 @@
1
1
  import { View } from 'react-native';
2
2
  export declare const SafeAreaView: typeof View;
3
+ //# sourceMappingURL=SafeAreaView.kepler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeAreaView.kepler.d.ts","sourceRoot":"","sources":["../../src/SafeAreaView.kepler.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,eAAO,MAAM,YAAY,aAAO,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { View } from 'react-native';
2
2
  export declare const SafeAreaView: typeof View;
3
+ //# sourceMappingURL=SafeAreaView.macos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeAreaView.macos.d.ts","sourceRoot":"","sources":["../../src/SafeAreaView.macos.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,eAAO,MAAM,YAAY,aAAO,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { NativeSafeAreaViewProps } from './SafeArea.types';
2
2
  export declare const SafeAreaView: import("react-native").HostComponent<NativeSafeAreaViewProps>;
3
+ //# sourceMappingURL=SafeAreaView.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeAreaView.native.d.ts","sourceRoot":"","sources":["../../src/SafeAreaView.native.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,eAAO,MAAM,YAAY,+DAExB,CAAC"}
@@ -1,2 +1,3 @@
1
1
  import { View } from 'react-native';
2
2
  export declare const SafeAreaView: typeof View;
3
+ //# sourceMappingURL=SafeAreaView.windows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SafeAreaView.windows.d.ts","sourceRoot":"","sources":["../../src/SafeAreaView.windows.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AAEpC,eAAO,MAAM,YAAY,aAAO,CAAC"}
@@ -2,3 +2,4 @@ export * from './SafeAreaContext';
2
2
  export * from './SafeAreaView';
3
3
  export * from './InitialWindow';
4
4
  export * from './SafeArea.types';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,iBAAiB,CAAC;AAChC,cAAc,kBAAkB,CAAC"}
@@ -6,3 +6,4 @@ type DisplayMetrics = {
6
6
  };
7
7
  export default function useWindowDimensions(): DisplayMetrics;
8
8
  export {};
9
+ //# sourceMappingURL=useWindowDimensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useWindowDimensions.d.ts","sourceRoot":"","sources":["../../src/useWindowDimensions.tsx"],"names":[],"mappings":"AAGA,KAAK,cAAc,GAAG;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAIF,MAAM,CAAC,OAAO,UAAU,mBAAmB,IAAI,cAAc,CAsB5D"}
package/package.json CHANGED
@@ -1 +1 @@
1
- {"name": "@amazon-devices/react-native-safe-area-context", "version": "2.0.1759135970+3.2.0", "description": "A flexible way to handle safe area, also works on Android and web.", "main": "lib/commonjs/index.js", "module": "lib/module/index.js", "react-native": "src/index.tsx", "types": "lib/typescript/src/index.d.ts", "sideEffects": false, "files": ["src", "lib", "android", "ios", "*.podspec", "react-native.config.js", "!**/__tests__", "kepler-compatibility.json", "!example", "SystemModules", "SystemBundles", "THIRD_PARTY_NOTICES.txt", "kepler-transformed-package-info.json"], "author": "Janic Duplessis <janicduplessis@gmail.com>", "contributors": ["Evan Bacon <bacon@expo.io> (https://github.com/evanbacon)"], "homepage": "https://github.com/th3rdwave/react-native-safe-area-context#readme", "license": "See license in LICENSE", "scripts": {"start": "react-native start", "test": "yarn validate:prettier && yarn validate:eslint && yarn validate:typescript && yarn validate:jest", "validate:eslint": "eslint \"src/**/*.{js,ts,tsx}\" \"example/**/*.{js,ts,tsx}\"", "validate:typescript": "tsc --project ./ --noEmit", "validate:prettier": "prettier \"src/**/*.{js,ts,tsx}\" \"example/**/*.{js,ts,tsx}\" --check", "validate:jest": "jest", "example:ios": "cd ./example && react-native run-ios", "example:android": "cd ./example && react-native run-android --no-jetifier", "example:expo": "expo start --config example/app.json"}, "keywords": ["react-native", "react native", "react-native-web", "expo-web", "safe area", "view"], "kepler": {"temporary-alias-for-package": {"name": "react-native-safe-area-context", "version": "3.2.0"}}, "peerDependencies": {"react": "*", "react-native": "*"}, "dependencies": {}, "devDependencies": {"@react-native-community/async-storage": "1.11.0", "@react-native-community/bob": "0.14.5", "@react-native-community/eslint-config": "2.0.0", "@react-native-community/masked-view": "0.1.10", "@react-navigation/bottom-tabs": "5.5.2", "@react-navigation/native": "5.5.1", "@react-navigation/stack": "5.5.1", "@types/jest": "^27.0.3", "@types/react": "17.0.2", "@types/react-dom": "~17.0.2", "@types/react-test-renderer": "^16.9.2", "@typescript-eslint/eslint-plugin": "^4.33.0", "@typescript-eslint/parser": "^4.33.0", "babel-plugin-module-resolver": "4.0.0", "eslint": "7.2.0", "eslint-config-prettier": "6.11.0", "eslint-plugin-prettier": "3.1.3", "jest": "26.0.1", "metro-react-native-babel-preset": "0.59.0", "prettier": "2.0.5", "react": "17.0.2", "react-dom": "17.0.2", "react-native": "0.72.0", "react-native-gesture-handler": "~2.13.0", "@amazon-devices/keplerscript-react-native-reanimated": "^2.0.0+2.1.0", "react-native-safe-area-view": "1.1.1", "react-native-screens": "~3.20.0", "react-native-web": "0.12.3", "react-navigation": "4.3.9", "react-navigation-stack": "2.7.0", "react-navigation-tabs": "2.8.13", "react-test-renderer": "16.13.1", "typescript": "^4.9.4"}, "repository": {"type": "git", "url": "https://github.com/th3rdwave/react-native-safe-area-context.git"}, "jest": {"preset": "react-native", "testEnvironment": "node", "clearMocks": true, "modulePathIgnorePatterns": ["<rootDir>/lib/"]}, "@react-native-community/bob": {"source": "src", "output": "lib", "targets": ["commonjs", "module", "typescript"]}}
1
+ {"name": "@amazon-devices/react-native-safe-area-context", "version": "2.0.9000000001+3.2.0", "description": "A flexible way to handle safe area, also works on Android and web.", "npm-pretty-much": {"allowUnsafeName": "maintain consistency with outside packages"}, "license": "See license in LICENSE", "main": "lib/commonjs/index.js", "module": "lib/module/index.js", "react-native": "src/index.tsx", "types": "src/index.tsx", "source": "src/index.tsx", "sideEffects": false, "files": ["src", "lib", "react-native.config.js", "kepler-compatibility.json", "!example", "SystemModules", "SystemBundles", "THIRD_PARTY_NOTICES.txt", "kepler-transformed-package-info.json"], "scripts": {"test": "npm run validate:typescript && npm run validate:jest", "validate:typescript": "tsc --project ./ --noEmit", "validate:jest": "jest", "build": "bob build", "build:release": "npm-run-all build"}, "kepler": {"temporary-alias-for-package": {"name": "react-native-safe-area-context", "version": "3.2.0"}}, "dependencies": {}, "peerDependencies": {"react": "*", "react-native": "*", "@amazon-devices/react-native-kepler": "^2.0.0+rn0.72.0"}, "devDependencies": {"@types/jest": "^27.0.3", "@types/react": "^17.0.0", "@types/react-test-renderer": "^16.9.2", "jest": "26.0.1", "metro-react-native-babel-preset": "0.59.0", "npm-run-all": "^4.1.5", "react": "17.0.2", "react-native": "0.72.0", "react-native-builder-bob": "0.20.4", "react-test-renderer": "16.13.1", "typescript": "^4.9.4"}, "jest": {"preset": "react-native", "testEnvironment": "node", "clearMocks": true, "modulePathIgnorePatterns": ["<rootDir>/lib/"]}, "react-native-builder-bob": {"source": "src", "output": "lib", "targets": ["commonjs", "module", "typescript"]}}
@@ -1,4 +1,4 @@
1
- import { EdgeInsets, Metrics } from './SafeArea.types';
1
+ import type { EdgeInsets, Metrics } from './SafeArea.types';
2
2
 
3
3
  export const initialWindowMetrics: Metrics | null = null;
4
4
 
@@ -1,6 +1,8 @@
1
+ // @ts-nocheck
2
+ // This is the web implementation - on Kepler, NativeSafeAreaProvider.kepler.tsx is used instead.
1
3
  import * as React from 'react';
2
4
  import { View } from 'react-native';
3
- import { NativeSafeAreaProviderProps } from './SafeArea.types';
5
+ import type { NativeSafeAreaProviderProps } from './SafeArea.types';
4
6
 
5
7
  /**
6
8
  * TODO:
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  NativeSyntheticEvent,
3
3
  StyleProp,
4
4
  ViewProps,
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { Dimensions, StyleProp, StyleSheet, ViewStyle } from 'react-native';
3
3
  import NativeSafeAreaProvider from './NativeSafeAreaProvider';
4
- import { EdgeInsets, InsetChangedEvent, Metrics, Rect } from './SafeArea.types';
4
+ import type { EdgeInsets, InsetChangedEvent, Metrics, Rect } from './SafeArea.types';
5
5
 
6
6
  export const SafeAreaInsetsContext = React.createContext<EdgeInsets | null>(
7
7
  null,
@@ -123,7 +123,7 @@ export function useSafeAreaFrame(): Rect {
123
123
  export function withSafeAreaInsets<T>(
124
124
  WrappedComponent: React.ComponentType<T>,
125
125
  ) {
126
- return React.forwardRef((props: T, ref: React.Ref<T>) => (
126
+ return React.forwardRef((props: any, ref: React.Ref<any>) => (
127
127
  <SafeAreaConsumer>
128
128
  {(insets) => <WrappedComponent {...props} insets={insets} ref={ref} />}
129
129
  </SafeAreaConsumer>
@@ -1,7 +1,7 @@
1
1
  import * as React from 'react';
2
2
  import { View, StyleSheet } from 'react-native';
3
3
  import { useSafeAreaInsets } from './SafeAreaContext';
4
- import { Edge, NativeSafeAreaViewProps } from './SafeArea.types';
4
+ import type { Edge, NativeSafeAreaViewProps } from './SafeArea.types';
5
5
 
6
6
  // prettier-ignore
7
7
  const TOP = 0b1000,
@@ -0,0 +1,47 @@
1
+ import { UIManager } from 'react-native';
2
+ import { Metrics } from '../SafeArea.types';
3
+
4
+ describe('InitialWindow', () => {
5
+ describe('initialWindowMetrics', () => {
6
+ it('is null when no view config is available', () => {
7
+ jest.resetModules();
8
+ expect(require('../InitialWindow').initialWindowMetrics).toBe(null);
9
+ });
10
+
11
+ it('it uses the constant provided by the view config', () => {
12
+ jest.resetModules();
13
+ const testMetrics: Metrics = {
14
+ insets: {
15
+ top: 20,
16
+ left: 0,
17
+ right: 0,
18
+ bottom: 0,
19
+ },
20
+ frame: {
21
+ x: 0,
22
+ y: 0,
23
+ height: 100,
24
+ width: 100,
25
+ },
26
+ };
27
+ UIManager.getViewManagerConfig = jest.fn((name) => {
28
+ if (name === 'RNCSafeAreaProvider') {
29
+ return {
30
+ Commands: {},
31
+ Constants: {
32
+ initialWindowMetrics: testMetrics,
33
+ },
34
+ };
35
+ }
36
+ return { Commands: {} };
37
+ });
38
+
39
+ expect(require('../InitialWindow').initialWindowMetrics).toBe(
40
+ testMetrics,
41
+ );
42
+ expect(UIManager.getViewManagerConfig).toBeCalledWith(
43
+ 'RNCSafeAreaProvider',
44
+ );
45
+ });
46
+ });
47
+ });
@@ -0,0 +1,121 @@
1
+ import * as React from 'react';
2
+ import { View } from 'react-native';
3
+ import * as ReactTestRenderer from 'react-test-renderer';
4
+ import NativeSafeAreaView from '../NativeSafeAreaProvider';
5
+ import {
6
+ SafeAreaProvider,
7
+ useSafeAreaInsets,
8
+ useSafeAreaFrame,
9
+ } from '../SafeAreaContext';
10
+ import { Metrics } from '../SafeArea.types';
11
+
12
+ const TEST_METRICS_1: Metrics = {
13
+ insets: { top: 1, left: 2, right: 3, bottom: 4 },
14
+ frame: { x: 0, y: 0, height: 100, width: 100 },
15
+ };
16
+ const TEST_METRICS_2: Metrics = {
17
+ insets: { top: 2, left: 3, right: 4, bottom: 5 },
18
+ frame: { x: 0, y: 0, width: 10, height: 16 },
19
+ };
20
+
21
+ const PrintInsetsTestView = () => {
22
+ const insets = useSafeAreaInsets();
23
+ const frame = useSafeAreaFrame();
24
+ return (
25
+ <View
26
+ style={{
27
+ paddingTop: insets.top,
28
+ paddingLeft: insets.left,
29
+ paddingBottom: insets.bottom,
30
+ paddingRight: insets.right,
31
+ top: frame.y,
32
+ left: frame.y,
33
+ width: frame.width,
34
+ height: frame.height,
35
+ }}
36
+ />
37
+ );
38
+ };
39
+
40
+ describe('SafeAreaContext', () => {
41
+ it('renders', () => {
42
+ const component = ReactTestRenderer.create(<SafeAreaProvider />);
43
+ expect(component).toMatchSnapshot();
44
+ });
45
+
46
+ it('does not render child until inset values are received', () => {
47
+ const component = ReactTestRenderer.create(
48
+ <SafeAreaProvider>
49
+ <PrintInsetsTestView />
50
+ </SafeAreaProvider>,
51
+ );
52
+ expect(component).toMatchSnapshot();
53
+ });
54
+
55
+ it('renders child when inset values are received', () => {
56
+ const component = ReactTestRenderer.create(
57
+ <SafeAreaProvider>
58
+ <PrintInsetsTestView />
59
+ </SafeAreaProvider>,
60
+ );
61
+ expect(component).toMatchSnapshot();
62
+ const { onInsetsChange } = component.root.findByType(
63
+ NativeSafeAreaView,
64
+ ).props;
65
+ ReactTestRenderer.act(() => {
66
+ onInsetsChange({
67
+ nativeEvent: TEST_METRICS_1,
68
+ });
69
+ });
70
+ expect(component).toMatchSnapshot();
71
+ });
72
+
73
+ it('supports setting initial insets', () => {
74
+ const component = ReactTestRenderer.create(
75
+ <SafeAreaProvider initialMetrics={TEST_METRICS_1}>
76
+ <PrintInsetsTestView />
77
+ </SafeAreaProvider>,
78
+ );
79
+ expect(component).toMatchSnapshot();
80
+ });
81
+
82
+ it('uses parent insets when available', () => {
83
+ const component = ReactTestRenderer.create(
84
+ <SafeAreaProvider initialMetrics={TEST_METRICS_1}>
85
+ <SafeAreaProvider>
86
+ <PrintInsetsTestView />
87
+ </SafeAreaProvider>
88
+ </SafeAreaProvider>,
89
+ );
90
+ expect(component).toMatchSnapshot();
91
+ });
92
+
93
+ it('uses inner insets', () => {
94
+ const component = ReactTestRenderer.create(
95
+ <SafeAreaProvider initialMetrics={TEST_METRICS_1}>
96
+ <SafeAreaProvider initialMetrics={TEST_METRICS_2}>
97
+ <PrintInsetsTestView />
98
+ </SafeAreaProvider>
99
+ </SafeAreaProvider>,
100
+ );
101
+ expect(component).toMatchSnapshot();
102
+ });
103
+
104
+ it('throws when no provider is rendered', () => {
105
+ // Silence the React error boundary warning; we expect an uncaught error.
106
+ const consoleErrorMock = jest
107
+ .spyOn(console, 'error')
108
+ .mockImplementation((message) => {
109
+ if (message.startsWith('The above error occured in the ')) {
110
+ return;
111
+ }
112
+ });
113
+ expect(() => {
114
+ ReactTestRenderer.create(<PrintInsetsTestView />);
115
+ }).toThrow(
116
+ 'No safe area insets value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.',
117
+ );
118
+
119
+ consoleErrorMock.mockRestore();
120
+ });
121
+ });