react-native-full-responsive
Version:
Create a fully responsive React Native app for all supported platforms
37 lines (36 loc) • 1.34 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.useRStyle = void 0;
var _react = require("react");
var _useDevice = require("./useDevice");
var _layout = require("../layout");
var _reactNative = require("react-native");
/**
* A hook is provided for createRStyle to create a dynamic responsive scale. This hook generates a new style when there are changes in dimensions, the parsing method, type, or bases.
* @param styles
* @param deps dependency list to regenerate styles after changing them, and default is an empty array
* @returns a responsive styles `object`
*/
const useRStyle = function (styles) {
let deps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
const device = (0, _useDevice.useDevice)();
const {
width,
height
} = (0, _reactNative.useWindowDimensions)();
const dependencies = [width, height, device, ...deps];
const responsivedStyles = (0, _react.useMemo)(() => {
const passedStyles = typeof styles === 'function' ? styles() : styles;
return (0, _layout.createRStyle)(passedStyles, {
width,
height,
scaleConfig: device
});
// eslint-disable-next-line react-hooks/exhaustive-deps
}, dependencies);
return responsivedStyles;
};
exports.useRStyle = useRStyle;
//# sourceMappingURL=useRStyle.js.map
;