'use strict'; Object.defineProperty(exports, '__esModule', { value: true }); var React = require('react'); function _interopDefault (e) { return e && e.__esModule ? e : { 'default': e }; } var React__default = /*#__PURE__*/_interopDefault(React); // basically Exclude["ref"], string> var updateRef = function updateRef(ref, value) { if (typeof ref === 'function') { ref(value); return; } ref.current = value; }; var useComposedRef = function useComposedRef(libRef, userRef) { var prevUserRef = React__default["default"].useRef(); return React__default["default"].useCallback(function (instance) { libRef.current = instance; if (prevUserRef.current) { updateRef(prevUserRef.current, null); } prevUserRef.current = userRef; if (!userRef) { return; } updateRef(userRef, instance); }, [userRef]); }; exports["default"] = useComposedRef;