@gravity-ui/uikit
Version:
Gravity UI base styling and components
29 lines (28 loc) • 1.46 kB
JavaScript
'use client';
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Link = void 0;
const tslib_1 = require("tslib");
const jsx_runtime_1 = require("react/jsx-runtime");
const React = tslib_1.__importStar(require("react"));
const useDefaultProps_1 = require("../theme/useDefaultProps.js");
const cn_1 = require("../utils/cn.js");
const event_broker_1 = require("../utils/event-broker/index.js");
const getLinkRelWithFallback_1 = require("../utils/getLinkRelWithFallback.js");
require("./Link.css");
const b = (0, cn_1.block)('link');
exports.Link = React.forwardRef(function Link(rawProps, ref) {
const { view = 'normal', visitable = false, underline = false, href, children, extraProps, qa, onClickCapture, ...props } = (0, useDefaultProps_1.useDefaultProps)('Link', rawProps);
const handleClickCapture = React.useCallback((event) => {
event_broker_1.eventBroker.publish({
componentId: 'Link',
eventId: 'click',
domEvent: event,
});
if (onClickCapture) {
onClickCapture(event);
}
}, [onClickCapture]);
return ((0, jsx_runtime_1.jsx)("a", { ...props, ...extraProps, ref: ref, href: href, rel: (0, getLinkRelWithFallback_1.getLinkRelWithFallback)(props), onClickCapture: handleClickCapture, className: b({ view, visitable, underline }, props.className), "data-qa": qa, children: children }));
});
//# sourceMappingURL=Link.js.map