Implement somewhat working drag & drop and improve render memoization

This commit is contained in:
Robin Townsend
2023-02-01 11:32:10 -05:00
parent eedf8a6d1b
commit 0915e327e1
6 changed files with 256 additions and 146 deletions

16
src/useMergedRefs.ts Normal file
View File

@@ -0,0 +1,16 @@
import { MutableRefObject, RefCallback, useCallback } from "react";
export const useMergedRefs = <T>(
...refs: (MutableRefObject<T | null> | RefCallback<T | null>)[]
): RefCallback<T | null> =>
useCallback(
(value) =>
refs.forEach((ref) => {
if (typeof ref === "function") {
ref(value);
} else {
ref.current = value;
}
}),
refs
);