createRef.js 1009 B

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