@storm-stack/hooks
Version:
A collection of React hooks used by Storm Software in various client libraries and applications.
29 lines (28 loc) • 662 B
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.composeRefs = composeRefs;
exports.setRef = setRef;
exports.useComposedRefs = useComposedRefs;
var _isFunction = require("@storm-stack/types/type-checks/is-function");
var _react = require("react");
function setRef(ref, value) {
if (ref) {
if ((0, _isFunction.isFunction)(ref)) {
ref(value);
} else {
ref.current = value;
}
}
}
function composeRefs(...refs) {
return node => {
for (const ref of refs) {
setRef(ref, node);
}
};
}
function useComposedRefs(...refs) {
return (0, _react.useCallback)(composeRefs(...refs), refs);
}