createRef.js 705 B

12345678910111213141516171819202122232425262728
  1. import _typeof from "@babel/runtime/helpers/esm/typeof";
  2. function createRef() {
  3. var func = function func(node) {
  4. func.current = node;
  5. };
  6. return func;
  7. }
  8. export function fillRef(ref, node) {
  9. if (typeof ref === 'function') {
  10. ref(node);
  11. } else if (_typeof(ref) === 'object' && ref && 'current' in ref) {
  12. ref.current = node;
  13. }
  14. }
  15. /**
  16. * Merge refs into one ref function to support ref passing.
  17. */
  18. export function composeRef() {
  19. for (var _len = arguments.length, refs = new Array(_len), _key = 0; _key < _len; _key++) {
  20. refs[_key] = arguments[_key];
  21. }
  22. return function (node) {
  23. refs.forEach(function (ref) {
  24. fillRef(ref, node);
  25. });
  26. };
  27. }
  28. export default createRef;