toArray.js 880 B

1234567891011121314151617181920212223242526
  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
  3. Object.defineProperty(exports, "__esModule", {
  4. value: true
  5. });
  6. exports.default = toArray;
  7. var _isFragment = _interopRequireDefault(require("../React/isFragment"));
  8. var _react = _interopRequireDefault(require("react"));
  9. function toArray(children) {
  10. var option = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
  11. var ret = [];
  12. _react.default.Children.forEach(children, function (child) {
  13. if ((child === undefined || child === null) && !option.keepEmpty) {
  14. return;
  15. }
  16. if (Array.isArray(child)) {
  17. ret = ret.concat(toArray(child));
  18. } else if ((0, _isFragment.default)(child) && child.props) {
  19. ret = ret.concat(toArray(child.props.children, option));
  20. } else {
  21. ret.push(child);
  22. }
  23. });
  24. return ret;
  25. }