office-ui-fabric-react
Version:
Reusable React components for building experiences for Office 365.
47 lines • 2.23 kB
JavaScript
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
;