rn-custom-style-sheet
Version:
React Native component to select a specific value from a range of values.
34 lines (33 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = useDevice;
var _react = require("react");
var _Core = require("../../../Core");
var _UseDeviceForMediaQuery = require("../UseDeviceForMediaQuery");
var _UseIsUpdate = require("../UseIsUpdate");
var _UseDeviceUtils = require("./UseDeviceUtils");
function useDevice(deviceFromProps) {
const deviceFromContext = (0, _UseDeviceForMediaQuery.useDeviceForMediaQuery)();
const isSupportedOrientation = (0, _Core.useCurrentOrientation)();
const [device, setDevice] = (0, _react.useState)((0, _UseDeviceUtils.getDevice)(deviceFromProps, deviceFromContext));
const isUpdate = (0, _UseIsUpdate.useIsUpdate)();
(0, _Core.useDeepCompareEffect)(() => {
if (isUpdate) {
const newDevice = (0, _UseDeviceUtils.getDevice)(deviceFromProps, deviceFromContext);
if (!(0, _UseDeviceUtils.shallowEqualObjects)(device, newDevice)) {
setDevice(newDevice);
}
}
}, [deviceFromProps, deviceFromContext]);
(0, _react.useEffect)(() => {
const newDevice = (0, _UseDeviceUtils.getDevice)(deviceFromProps, deviceFromContext);
if (!(0, _UseDeviceUtils.shallowEqualObjects)(device, newDevice)) {
setDevice(newDevice);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [isSupportedOrientation]);
return device;
}
//# sourceMappingURL=UseDevice.js.map