Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
 
 
 
 

45 строки
1.4 KiB

  1. "use strict";
  2. var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
  3. exports.__esModule = true;
  4. exports["default"] = void 0;
  5. var _propTypes = _interopRequireDefault(require("prop-types"));
  6. var _reactDom = _interopRequireDefault(require("react-dom"));
  7. var _useWaitForDOMRef = _interopRequireDefault(require("./utils/useWaitForDOMRef"));
  8. var propTypes = {
  9. /**
  10. * A DOM element, Ref to an element, or function that returns either. The `container` will have the Portal children
  11. * appended to it.
  12. */
  13. container: _propTypes["default"].any,
  14. onRendered: _propTypes["default"].func
  15. };
  16. /**
  17. * The `<Portal/>` component renders its children into a new "subtree" outside of current component hierarchy.
  18. * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.
  19. * The children of `<Portal/>` component will be appended to the `container` specified.
  20. *
  21. */
  22. var Portal = function Portal(_ref) {
  23. var container = _ref.container,
  24. children = _ref.children,
  25. onRendered = _ref.onRendered;
  26. var resolvedContainer = (0, _useWaitForDOMRef["default"])(container, onRendered);
  27. return resolvedContainer ? _reactDom["default"].createPortal(children, resolvedContainer) : null;
  28. };
  29. Portal.displayName = 'Portal';
  30. Portal.propTypes = propTypes;
  31. /**
  32. * @component
  33. */
  34. var _default = Portal;
  35. exports["default"] = _default;
  36. module.exports = exports.default;