UNPKG

@txdfe/at

Version:

一个设计体系组件库

61 lines (48 loc) 1.64 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.cloneAndAddKey = cloneAndAddKey; exports.scrollToFirstError = scrollToFirstError; var _react = require("react"); var _reactDom = _interopRequireDefault(require("react-dom")); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; } function cloneAndAddKey(element) { if (element && /*#__PURE__*/(0, _react.isValidElement)(element)) { var key = element.key || 'error'; return /*#__PURE__*/(0, _react.cloneElement)(element, { key: key }); } return element; } function scrollToFirstError(_ref) { var errorsGroup = _ref.errorsGroup, options = _ref.options, instance = _ref.instance; if (errorsGroup && options.scrollToFirstError) { var firstNode; var firstTop; for (var i in errorsGroup) { if (errorsGroup.hasOwnProperty(i)) { var node = _reactDom["default"].findDOMNode(instance[i]); if (!node) { return; } var top = node.offsetTop; if (firstTop === undefined || firstTop > top) { firstTop = top; firstNode = node; } } } if (firstNode) { if (typeof options.scrollToFirstError === 'number' && window && typeof window.scrollTo === 'function') { var offsetLeft = document && document.body && document.body.offsetLeft ? document.body.offsetLeft : 0; window.scrollTo(offsetLeft, firstTop + options.scrollToFirstError); } else if (firstNode.scrollIntoViewIfNeeded) { firstNode.scrollIntoViewIfNeeded(true); } } } }