UNPKG

stream-chat-react-native-core

Version:

The official React Native and Expo components for Stream Chat, a service for building chat applications

49 lines 1.74 kB
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault"); Object.defineProperty(exports, "__esModule", { value: true }); exports.useScreenDimensions = void 0; var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray")); var _react = require("react"); var _reactNative = require("react-native"); var useScreenDimensions = rounded => { var _useState = (0, _react.useState)(() => _reactNative.Dimensions.get('screen')), _useState2 = (0, _slicedToArray2.default)(_useState, 2), screenDimensions = _useState2[0], setScreenDimensions = _useState2[1]; (0, _react.useEffect)(() => { var handleChange = ({ screen }) => { setScreenDimensions(prev => { var height = screen.height, width = screen.width; if (prev.height !== height || prev.width !== width) { return screen; } return prev; }); }; var subscription = _reactNative.Dimensions.addEventListener('change', handleChange); handleChange({ screen: _reactNative.Dimensions.get('screen') }); return () => { subscription.remove(); }; }, []); var vw = (0, _react.useCallback)(percentageWidth => { var value = screenDimensions.width * (percentageWidth / 100); return rounded ? Math.round(value) : value; }, [rounded, screenDimensions.width]); var vh = (0, _react.useCallback)(percentageHeight => { var value = screenDimensions.height * (percentageHeight / 100); return rounded ? Math.round(value) : value; }, [rounded, screenDimensions.height]); return { vh, vw }; }; exports.useScreenDimensions = useScreenDimensions; //# sourceMappingURL=useScreenDimensions.js.map