mirror of
https://github.com/Tria-plc/emaui.git
synced 2026-08-26 19:12:50 +00:00
36 lines
925 B
JavaScript
36 lines
925 B
JavaScript
'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<React.ClassAttributes<T>["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;
|