UNPKG

@yandex/ui

Version:

Yandex UI components

40 lines (39 loc) 1.6 kB
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; });