@fruits-chain/react-native-xiaoshu
Version:
🌈 React Native UI library
44 lines (35 loc) • 1.21 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _react = require("react");
var _reactNative = require("react-native");
var _reactNativeSafeAreaContext = require("react-native-safe-area-context");
const getDefaultValue = (v, dv) => {
if (typeof v === 'number') {
return v;
}
if (typeof v === 'boolean' && v) {
return dv;
}
return 0;
};
const useSafeHeight = function () {
let {
top = true,
bottom = true
} = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
const insets = (0, _reactNativeSafeAreaContext.useSafeAreaInsets)();
const insetTop = getDefaultValue(top, insets.top);
const insetBottom = getDefaultValue(bottom, insets.bottom);
const dimensionsWindow = (0, _reactNative.useWindowDimensions)();
const [height, setHeight] = (0, _react.useState)(dimensionsWindow.height - insetTop - insetBottom);
(0, _react.useLayoutEffect)(() => {
setHeight(dimensionsWindow.height - insetTop - insetBottom);
}, [dimensionsWindow.height, insetTop, insetBottom]);
return height;
};
var _default = useSafeHeight;
exports.default = _default;
//# sourceMappingURL=useSafeHeight.js.map