@yandex/ui
Version:
Yandex UI components
43 lines (42 loc) • 1.76 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.withPseudo = void 0;
var tslib_1 = require("tslib");
var react_1 = tslib_1.__importStar(require("react"));
var core_1 = require("@bem-react/core");
var keyboard_1 = require("../../lib/keyboard");
var Link_1 = require("../Link");
/**
* Модификатор, делающий из ссылки псевдоссылку.
* @param {ILinkPseudoProps} props
*/
exports.withPseudo = core_1.withBemMod(Link_1.cnLink(), { pseudo: true }, function (Link) {
var WithPseudo = /** @class */ (function (_super) {
tslib_1.__extends(WithPseudo, _super);
function WithPseudo() {
var _this = _super !== null && _super.apply(this, arguments) || this;
_this.onClick = function (event) {
event.preventDefault();
if (_this.props.onClick !== undefined) {
_this.props.onClick(event);
}
};
_this.onKeyDown = function (event) {
if (event.keyCode === keyboard_1.Keys.SPACE) {
// Отменяем scroll.
event.preventDefault();
}
if (_this.props.onKeyDown !== undefined) {
_this.props.onKeyDown(event);
}
};
return _this;
}
WithPseudo.prototype.render = function () {
var _a = this.props, pseudo = _a.pseudo, props = tslib_1.__rest(_a, ["pseudo"]);
return react_1.default.createElement(Link, tslib_1.__assign({}, props, { onClick: this.onClick, onKeyDown: this.onKeyDown }));
};
return WithPseudo;
}(react_1.PureComponent));
return WithPseudo;
});