UNPKG

react-native-reanimated

Version:

More powerful alternative to Animated library for React Native.

36 lines (30 loc) 1.21 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.useFrameCallback = useFrameCallback; var _react = require("react"); var _FrameCallbackRegistryJS = _interopRequireDefault(require("../frameCallback/FrameCallbackRegistryJS")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } const frameCallbackRegistry = new _FrameCallbackRegistryJS.default(); function useFrameCallback(callback) { let autostart = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true; const ref = (0, _react.useRef)({ setActive: isActive => { frameCallbackRegistry.manageStateFrameCallback(ref.current.callbackId, isActive); ref.current.isActive = isActive; }, isActive: autostart, callbackId: -1 }); (0, _react.useEffect)(() => { ref.current.callbackId = frameCallbackRegistry.registerFrameCallback(callback); ref.current.setActive(ref.current.isActive); return () => { frameCallbackRegistry.unregisterFrameCallback(ref.current.callbackId); ref.current.callbackId = -1; }; }, [callback, autostart]); return ref.current; } //# sourceMappingURL=useFrameCallback.js.map