createRef.js 790 B

1234567891011121314151617181920212223242526272829303132333435
  1. "use strict";
  2. Object.defineProperty(exports, "__esModule", {
  3. value: true
  4. });
  5. exports.composeRef = composeRef;
  6. exports.default = void 0;
  7. exports.fillRef = fillRef;
  8. function createRef() {
  9. const func = node => {
  10. func.current = node;
  11. };
  12. return func;
  13. }
  14. function fillRef(ref, node) {
  15. if (typeof ref === 'function') {
  16. ref(node);
  17. } else if (typeof ref === 'object' && ref && 'current' in ref) {
  18. ref.current = node;
  19. }
  20. }
  21. /**
  22. * Merge refs into one ref function to support ref passing.
  23. */
  24. function composeRef() {
  25. for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
  26. refs[_key] = arguments[_key];
  27. }
  28. return node => {
  29. refs.forEach(ref => {
  30. fillRef(ref, node);
  31. });
  32. };
  33. }
  34. var _default = exports.default = createRef;