You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
13 KiB

{"ast":null,"code":"import _slicedToArray from \"@babel/runtime/helpers/slicedToArray\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/objectWithoutProperties\";\nvar _excluded = [\"children\", \"initialMetrics\", \"initialSafeAreaInsets\", \"style\"];\nfunction _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}\nimport * as React from 'react';\nimport Dimensions from \"react-native-web/dist/exports/Dimensions\";\nimport StyleSheet from \"react-native-web/dist/exports/StyleSheet\";\nimport { NativeSafeAreaProvider } from \"./NativeSafeAreaProvider\";\nvar isDev = process.env.NODE_ENV !== 'production';\nexport var SafeAreaInsetsContext = React.createContext(null);\nif (isDev) {\n SafeAreaInsetsContext.displayName = 'SafeAreaInsetsContext';\n}\nexport var SafeAreaFrameContext = React.createContext(null);\nif (isDev) {\n SafeAreaFrameContext.displayName = 'SafeAreaFrameContext';\n}\nexport function SafeAreaProvider(_ref) {\n var _ref2, _ref3, _ref4, _ref5, _ref6;\n var children = _ref.children,\n initialMetrics = _ref.initialMetrics,\n initialSafeAreaInsets = _ref.initialSafeAreaInsets,\n style = _ref.style,\n others = _objectWithoutProperties(_ref, _excluded);\n var parentInsets = useParentSafeAreaInsets();\n var parentFrame = useParentSafeAreaFrame();\n var _React$useState = React.useState((_ref2 = (_ref3 = (_ref4 = initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.insets) != null ? _ref4 : initialSafeAreaInsets) != null ? _ref3 : parentInsets) != null ? _ref2 : null),\n _React$useState2 = _slicedToArray(_React$useState, 2),\n insets = _React$useState2[0],\n setInsets = _React$useState2[1];\n var _React$useState3 = React.useState((_ref5 = (_ref6 = initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.frame) != null ? _ref6 : parentFrame) != null ? _ref5 : {\n x: 0,\n y: 0,\n width: Dimensions.get('window').width,\n height: Dimensions.get('window').height\n }),\n _React$useState4 = _slicedToArray(_React$useState3, 2),\n frame = _React$useState4[0],\n setFrame = _React$useState4[1];\n var onInsetsChange = React.useCallback(function (event) {\n var _event$nativeEvent = event.nativeEvent,\n nextFrame = _event$nativeEvent.frame,\n nextInsets = _event$nativeEvent.insets;\n if (nextFrame && (nextFrame.height !== frame.height || nextFrame.width !== frame.width || nextFrame.x !== frame.x || nextFrame.y !== frame.y)) {\n setFrame(nextFrame);\n }\n if (!insets || nextInsets.bottom !== insets.bottom || nextInsets.left !== insets.left || nextInsets.right !== insets.right || nextInsets.top !== insets.top) {\n setInsets(nextInsets);\n }\n }, [frame, insets]);\n return React.createElement(NativeSafeAreaProvider, _extends({\n style: [styles.fill, style],\n onInsetsChange: onInsetsChange\n }, others), insets != null ? React.createElement(SafeAreaFrameContext.Provider, {\n value: frame\n }, React.createElement(SafeAreaInsetsContext.Provider, {\n value: insets\n }, children)) : null);\n}\nvar styles = StyleSheet.create({\n fill: {\n flex: 1\n }\n});\nfunction useParentSafeAreaInsets() {\n return React.useContext(SafeAreaInsetsContext);\n}\nfunction useParentSafeAreaFrame() {\n return React.useContext(SafeAreaFrameContext);\n}\nvar NO_INSETS_ERROR = 'No safe area value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.';\nexport function useSafeAreaInsets() {\n var safeArea = React.useContext(SafeAreaInsetsContext);\n if (safeArea == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return safeArea;\n}\nexport function useSafeAreaFrame() {\n var frame = React.useContext(SafeAreaFrameContext);\n if (frame == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return frame;\n}\nexport function withSafeAreaInsets(WrappedComponent) {\n return React.forwardRef(function (props, ref) {\n return React.createElement(SafeAreaInsetsContext.Consumer, null, function (insets) {\n if (insets == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return React.createElement(WrappedComponent, _extends({}, props, {\n insets: insets,\n ref: ref\n }));\n });\n });\n}\nexport function useSafeArea() {\n return useSafeAreaInsets();\n}\nexport var SafeAreaConsumer = SafeAreaInsetsContext.Consumer;\nexport var SafeAreaContext = SafeAreaInsetsContext;","map":{"version":3,"sources":["SafeAreaContext.tsx"],"names":["React","NativeSafeAreaProvider","isDev","process","env","NODE_ENV","SafeAreaInsetsContext","createContext","displayName","SafeAreaFrameContext","SafeAreaProvider","children","initialMetrics","initialSafeAreaInsets","style","others","parentInsets","useParentSafeAreaInsets","parentFrame","useParentSafeAreaFrame","insets","setInsets","useState","frame","setFrame","x","y","width","Dimensions","get","height","onInsetsChange","useCallback","event","nativeEvent","nextFrame","nextInsets","bottom","left","right","top","styles","fill","StyleSheet","create","flex","useContext","NO_INSETS_ERROR","useSafeAreaInsets","safeArea","Error","useSafeAreaFrame","withSafeAreaInsets","WrappedComponent","forwardRef","props","ref","useSafeArea","SafeAreaConsumer","Consumer","SafeAreaContext"],"mappings":"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","sourceRoot":"../../src","sourcesContent":["function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from 'react';\nimport { Dimensions, StyleSheet } from 'react-native';\nimport { NativeSafeAreaProvider } from './NativeSafeAreaProvider';\nconst isDev = process.env.NODE_ENV !== 'production';\nexport const SafeAreaInsetsContext = /*#__PURE__*/React.createContext(null);\nif (isDev) {\n SafeAreaInsetsContext.displayName = 'SafeAreaInsetsContext';\n}\nexport const SafeAreaFrameContext = /*#__PURE__*/React.createContext(null);\nif (isDev) {\n SafeAreaFrameContext.displayName = 'SafeAreaFrameContext';\n}\nexport function SafeAreaProvider(_ref) {\n let {\n children,\n initialMetrics,\n initialSafeAreaInsets,\n style,\n ...others\n } = _ref;\n const parentInsets = useParentSafeAreaInsets();\n const parentFrame = useParentSafeAreaFrame();\n const [insets, setInsets] = React.useState((initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.insets) ?? initialSafeAreaInsets ?? parentInsets ?? null);\n const [frame, setFrame] = React.useState((initialMetrics === null || initialMetrics === void 0 ? void 0 : initialMetrics.frame) ?? 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 const onInsetsChange = React.useCallback(event => {\n const {\n nativeEvent: {\n frame: nextFrame,\n insets: nextInsets\n }\n } = event;\n if (\n // Backwards compat with old native code that won't send frame.\n nextFrame && (nextFrame.height !== frame.height || nextFrame.width !== frame.width || nextFrame.x !== frame.x || nextFrame.y !== frame.y)) {\n setFrame(nextFrame);\n }\n if (!insets || nextInsets.bottom !== insets.bottom || nextInsets.left !== insets.left || nextInsets.right !== insets.right || nextInsets.top !== insets.top) {\n setInsets(nextInsets);\n }\n }, [frame, insets]);\n return /*#__PURE__*/React.createElement(NativeSafeAreaProvider, _extends({\n style: [styles.fill, style],\n onInsetsChange: onInsetsChange\n }, others), insets != null ? /*#__PURE__*/React.createElement(SafeAreaFrameContext.Provider, {\n value: frame\n }, /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Provider, {\n value: insets\n }, children)) : null);\n}\nconst styles = StyleSheet.create({\n fill: {\n flex: 1\n }\n});\nfunction useParentSafeAreaInsets() {\n return React.useContext(SafeAreaInsetsContext);\n}\nfunction useParentSafeAreaFrame() {\n return React.useContext(SafeAreaFrameContext);\n}\nconst NO_INSETS_ERROR = 'No safe area value available. Make sure you are rendering `<SafeAreaProvider>` at the top of your app.';\nexport function useSafeAreaInsets() {\n const safeArea = React.useContext(SafeAreaInsetsContext);\n if (safeArea == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return safeArea;\n}\nexport function useSafeAreaFrame() {\n const frame = React.useContext(SafeAreaFrameContext);\n if (frame == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return frame;\n}\nexport function withSafeAreaInsets(WrappedComponent) {\n return /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SafeAreaInsetsContext.Consumer, null, insets => {\n if (insets == null) {\n throw new Error(NO_INSETS_ERROR);\n }\n return /*#__PURE__*/React.createElement(WrappedComponent, _extends({}, props, {\n insets: insets,\n ref: ref\n }));\n }));\n}\n\n/**\n * @deprecated\n */\nexport function useSafeArea() {\n return useSafeAreaInsets();\n}\n\n/**\n * @deprecated\n */\nexport const SafeAreaConsumer = SafeAreaInsetsContext.Consumer;\n\n/**\n * @deprecated\n */\nexport const SafeAreaContext = SafeAreaInsetsContext;\n//# sourceMappingURL=SafeAreaContext.js.map"]},"metadata":{},"sourceType":"module"}