UNPKG

@td-design/rn-hooks

Version:

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

34 lines (31 loc) 1.24 kB
import { __read } from '../_virtual/_tslib.js'; import { useEffect } from 'react'; import { Dimensions } from 'react-native'; import useSafeState from '../useSafeState/index.js'; var initialValue = { window: Dimensions.get('window'), screen: Dimensions.get('screen'), }; function useDimensions() { var _a = __read(useSafeState(initialValue), 2), dimensions = _a[0], setDimensions = _a[1]; useEffect(function () { function onChange(_a) { var window = _a.window, screen = _a.screen; setDimensions({ window: window, screen: screen }); } var subscription = 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 Dimensions.removeEventListener('change', onChange); } }; }, [setDimensions]); return dimensions; } export { useDimensions as default };