@vela-ui/react
Version:
Vela UI React components
19 lines (17 loc) • 509 B
JavaScript
// src/hooks/use-callback-ref.ts
import { useCallback, useInsertionEffect, useRef } from "react";
function useCallbackRef(callback, deps = []) {
const callbackRef = useRef(() => {
throw new Error("Cannot call an event handler while rendering.");
});
useInsertionEffect(() => {
callbackRef.current = callback;
});
return useCallback((...args) => {
var _a;
return (_a = callbackRef.current) == null ? void 0 : _a.call(callbackRef, ...args);
}, deps);
}
export {
useCallbackRef
};