- Updated all component headers and documentation
- Changed navbar and footer branding
- Updated homepage hero badge
- Modified page title in index.html
- Simplified footer text to 'Built with ❤️'
- Consistent V2 capitalization across all references
29 lines
564 B
JavaScript
29 lines
564 B
JavaScript
'use client';
|
|
import { useMemo } from 'react';
|
|
|
|
function assignRef(ref, value) {
|
|
if (ref == null)
|
|
return;
|
|
if (typeof ref === "function") {
|
|
ref(value);
|
|
return;
|
|
}
|
|
try {
|
|
ref.current = value;
|
|
} catch (error) {
|
|
throw new Error(`Cannot assign value '${value}' to ref '${ref}'`);
|
|
}
|
|
}
|
|
function mergeRefs(...refs) {
|
|
return (node) => {
|
|
refs.forEach((ref) => {
|
|
assignRef(ref, node);
|
|
});
|
|
};
|
|
}
|
|
function useMergeRefs(...refs) {
|
|
return useMemo(() => mergeRefs(...refs), refs);
|
|
}
|
|
|
|
export { assignRef, mergeRefs, useMergeRefs };
|