UNPKG

@mantine/hooks

Version:

A collection of 50+ hooks for state and UI management

45 lines (41 loc) 1.04 kB
'use client'; 'use strict'; var React = require('react'); function assignRef(ref, value) { if (typeof ref === "function") { return ref(value); } else if (typeof ref === "object" && ref !== null && "current" in ref) { ref.current = value; } } function mergeRefs(...refs) { const cleanupMap = /* @__PURE__ */ new Map(); return (node) => { refs.forEach((ref) => { const cleanup = assignRef(ref, node); if (cleanup) { cleanupMap.set(ref, cleanup); } }); if (cleanupMap.size > 0) { return () => { refs.forEach((ref) => { const cleanup = cleanupMap.get(ref); if (cleanup) { cleanup(); } else { assignRef(ref, null); } }); cleanupMap.clear(); }; } }; } function useMergedRef(...refs) { return React.useCallback(mergeRefs(...refs), refs); } exports.assignRef = assignRef; exports.mergeRefs = mergeRefs; exports.useMergedRef = useMergedRef; //# sourceMappingURL=use-merged-ref.cjs.map