22 lines
404 B
TypeScript
Executable File
22 lines
404 B
TypeScript
Executable File
import { ReactNode, useCallback, useRef } from "react";
|
|
|
|
export const useRefCallback = <T = ReactNode>(): [
|
|
T | null,
|
|
(arg: T) => void,
|
|
] => {
|
|
const ref = useRef<T | null>(null);
|
|
const setRef = useCallback((val: T) => {
|
|
if (ref.current) {
|
|
// does something?
|
|
}
|
|
|
|
if (val) {
|
|
// also does something?
|
|
}
|
|
|
|
ref.current = val;
|
|
}, []);
|
|
|
|
return [ref.current, setRef];
|
|
};
|