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
JavaScript
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