@yandex/ui
Version:
Yandex UI components
29 lines (28 loc) • 1.13 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withTogglable = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
/**
* ХОК позволяющий управлять состоянием открытия и закрытия.
*/
var withTogglable = function (WrappedComponent) {
return /** @class */ (function (_super) {
tslib_1.__extends(WithTogglable, _super);
function WithTogglable() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.state = {
opened: false,
};
_this.setOpened = function (opened) {
_this.setState({ opened: opened });
};
return _this;
}
WithTogglable.prototype.render = function () {
return react_1.default.createElement(WrappedComponent, tslib_1.__assign({}, this.props, { opened: this.state.opened, setOpened: this.setOpened }));
};
return WithTogglable;
}(react_1.PureComponent));
};
exports.withTogglable = withTogglable;