UNPKG

office-ui-fabric-react

Version:

Reusable React components for building experiences for Office 365.

47 lines 2.23 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var tslib_1 = require("tslib"); var React = require("react"); var Utilities_1 = require("../../Utilities"); var getClassNames = Utilities_1.classNamesFunction(); var LinkBase = /** @class */ (function (_super) { tslib_1.__extends(LinkBase, _super); function LinkBase() { return _super !== null && _super.apply(this, arguments) || this; } LinkBase.prototype.render = function () { var _a = this.props, disabled = _a.disabled, children = _a.children, className = _a.className, href = _a.href, theme = _a.theme, getStyles = _a.getStyles; var classNames = getClassNames(getStyles, { className: className, isButton: !href, isDisabled: disabled, theme: theme }); var anchorElement = (React.createElement("a", tslib_1.__assign({}, Utilities_1.getNativeProps(this.props, Utilities_1.anchorProperties), { className: classNames.root, onClick: this._onClick, ref: this._resolveRef('_link'), target: this.props.target, "aria-disabled": disabled }), children)); var buttonElement = (React.createElement("button", tslib_1.__assign({}, Utilities_1.getNativeProps(this.props, Utilities_1.buttonProperties), { className: classNames.root, onClick: this._onClick, ref: this._resolveRef('_link'), "aria-disabled": disabled }), children)); return href ? anchorElement : buttonElement; }; LinkBase.prototype.focus = function () { if (this._link) { this._link.focus(); } }; LinkBase.prototype._onClick = function (ev) { var _a = this.props, onClick = _a.onClick, disabled = _a.disabled; if (disabled) { ev.preventDefault(); } else if (onClick) { onClick(ev); } }; tslib_1.__decorate([ Utilities_1.autobind ], LinkBase.prototype, "_onClick", null); LinkBase = tslib_1.__decorate([ Utilities_1.customizable('Link', ['theme', 'getStyles']) ], LinkBase); return LinkBase; }(Utilities_1.BaseComponent)); exports.LinkBase = LinkBase; //# sourceMappingURL=Link.base.js.map