UNPKG

@yamada-ui/react

Version:

React UI components of the Yamada, by the Yamada, for the Yamada built with React and Emotion

47 lines (45 loc) 1.32 kB
const require_rolldown_runtime = require('../_virtual/rolldown_runtime.cjs'); let react = require("react"); react = require_rolldown_runtime.__toESM(react); let __yamada_ui_utils = require("@yamada-ui/utils"); __yamada_ui_utils = require_rolldown_runtime.__toESM(__yamada_ui_utils); //#region src/utils/ref.ts function isRefObject(val) { return (0, __yamada_ui_utils.isObject)(val) && "current" in val; } function assignRef(ref, value) { if (ref == null) return; if (typeof ref === "function") { ref(value); return; } try { ref.current = value; } catch { throw new Error(`Cannot assign value '${value}' to ref '${ref}'`); } } function mergeRefs(...refs) { return function(node) { return refs.forEach((ref) => { assignRef(ref, node); }); }; } function useMergeRefs(...refs) { return react.useMemo(() => mergeRefs(...refs), [refs]); } function useCallbackRef(callback, deps = []) { const callbackRef = react.useRef(callback); react.useEffect(() => { callbackRef.current = callback; }); return react.useCallback(((...args) => callbackRef.current?.(...args)), deps); } //#endregion exports.assignRef = assignRef; exports.isRefObject = isRefObject; exports.mergeRefs = mergeRefs; exports.useCallbackRef = useCallbackRef; exports.useMergeRefs = useMergeRefs; //# sourceMappingURL=ref.cjs.map