UNPKG

@td-design/rn-hooks

Version:

从ahooks里面抽取的一些在rn项目里可以使用的hooks。提高开发效率

36 lines (32 loc) 1.3 kB
'use strict'; var _tslib = require('../_virtual/_tslib.js'); var react = require('react'); var reactNative = require('react-native'); var index = require('../useSafeState/index.js'); var initialValue = { window: reactNative.Dimensions.get('window'), screen: reactNative.Dimensions.get('screen'), }; function useDimensions() { var _a = _tslib.__read(index(initialValue), 2), dimensions = _a[0], setDimensions = _a[1]; react.useEffect(function () { function onChange(_a) { var window = _a.window, screen = _a.screen; setDimensions({ window: window, screen: screen }); } var subscription = reactNative.Dimensions.addEventListener('change', onChange); return function () { // @ts-ignore - React Native >= 0.65 if (typeof (subscription === null || subscription === void 0 ? void 0 : subscription.remove) === 'function') { // @ts-ignore - need update @types/react-native@0.65.x subscription.remove(); } else { // @ts-ignore React Native < 0.65 reactNative.Dimensions.removeEventListener('change', onChange); } }; }, [setDimensions]); return dimensions; } module.exports = useDimensions;