@yandex/ui
Version:
Yandex UI components
40 lines (39 loc) • 1.6 kB
JavaScript
import { __assign, __extends, __rest } from "tslib";
import React, { PureComponent } from 'react';
import { withBemMod } from '@bem-react/core';
import { Keys } from '../../lib/keyboard';
import { cnLink } from '../Link';
/**
* Модификатор, делающий из ссылки псевдоссылку.
* @param {ILinkPseudoProps} props
*/
export var withPseudo = withBemMod(cnLink(), { pseudo: true }, function (Link) {
var WithPseudo = /** @class */ (function (_super) {
__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 === 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 = __rest(_a, ["pseudo"]);
return React.createElement(Link, __assign({}, props, { onClick: this.onClick, onKeyDown: this.onKeyDown }));
};
return WithPseudo;
}(PureComponent));
return WithPseudo;
});