assignRef.js 556 B

12345678910111213141516171819202122
  1. /**
  2. * Assigns a value for a given ref, no matter of the ref format
  3. * @param {RefObject} ref - a callback function or ref object
  4. * @param value - a new value
  5. *
  6. * @see https://github.com/theKashey/use-callback-ref#assignref
  7. * @example
  8. * const refObject = useRef();
  9. * const refFn = (ref) => {....}
  10. *
  11. * assignRef(refObject, "refValue");
  12. * assignRef(refFn, "refValue");
  13. */
  14. export function assignRef(ref, value) {
  15. if (typeof ref === 'function') {
  16. ref(value);
  17. }
  18. else if (ref) {
  19. ref.current = value;
  20. }
  21. return ref;
  22. }