@fishjam-cloud/react-client
Version:
React client library for Fishjam
15 lines (14 loc) • 555 B
JavaScript
import { useCallback, useLayoutEffect, useRef } from "react";
/**
* Returns a stable function reference whose body always reads the latest
* closure values. Use when a method needs to be called from effects or
* captured by consumers without being memoized against changing state
* (peerStatus, deviceTrack, etc.) in its dep array.
*/
export const useCurrentCallback = (handler) => {
const ref = useRef(handler);
useLayoutEffect(() => {
ref.current = handler;
});
return useCallback((...args) => ref.current(...args), []);
};