@alifd/meet-react
Version:
Fusion Mobile React UI System Component
91 lines (90 loc) • 3.99 kB
JavaScript
;
exports.__esModule = true;
exports.default = void 0;
var _react = _interopRequireWildcard(require("react"));
var _meetReactComponentOne = require("@alifd/meet-react-component-one");
var _locale = require("../locale");
var _hooks = require("../utils/hooks");
var _render = require("../utils/render");
function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }
function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
var ConfigProvider = /*#__PURE__*/function (_Component) {
_inheritsLoose(ConfigProvider, _Component);
function ConfigProvider(props) {
var _this = _Component.call(this, props) || this;
_this.state = {
portals: []
};
return _this;
}
var _proto = ConfigProvider.prototype;
_proto.componentDidMount = function componentDidMount() {
if (!this.props.disablePortal) {
(0, _render.onProviderMount)(this);
}
};
_proto.componentDidUpdate = function componentDidUpdate(prevProps) {
if (this.props.disablePortal !== prevProps.disablePortal) {
if (this.props.disablePortal) {
(0, _render.onProviderUnMount)();
} else {
(0, _render.onProviderMount)(this);
}
}
};
_proto.componentWillUnmount = function componentWillUnmount() {
(0, _render.onProviderUnMount)();
};
_proto.addPortal = function addPortal(item) {
var _this2 = this;
var id = (0, _hooks.guid)('portal-');
var arr = [].concat(this.state.portals);
arr.push(Object.assign(Object.assign({}, item), {
id: id
}));
this.setState({
portals: arr
});
return function () {
var i = _this2.state.portals.find(function (it) {
return it.id === id;
});
if (i) {
var a = [].concat(_this2.state.portals);
a.splice(a.indexOf(i), 1);
_this2.setState({
portals: a
});
if (i.onHide) {
i.onHide();
}
}
};
};
_proto.render = function render() {
var portals = this.state.portals;
var _this$props = this.props,
locale = _this$props.locale,
children = _this$props.children;
return /*#__PURE__*/(0, _react.createElement)(_locale.LocaleProvider, {
locale: locale
}, /*#__PURE__*/(0, _react.createElement)(_react.Fragment, null, portals.length > 0 && /*#__PURE__*/(0, _react.createElement)(_meetReactComponentOne.Portal, null, portals.map(function (it) {
return /*#__PURE__*/(0, _react.createElement)(_react.Fragment, {
key: it.id
}, it.element);
})), children));
};
return ConfigProvider;
}(_react.Component);
ConfigProvider.Consumer = function (_ref) {
var children = _ref.children;
return /*#__PURE__*/(0, _react.createElement)(_locale.Context.Consumer, null, function (_ref2) {
var locale = _ref2.locale;
return children ? children({
locale: locale
}) : null;
});
};
var _default = exports.default = ConfigProvider;