@gravity-ui/uikit
Version:
Gravity UI base styling and components
25 lines (24 loc) • 1.19 kB
JavaScript
'use client';
import { jsx as _jsx } from "react/jsx-runtime";
import * as React from 'react';
import { useDefaultProps } from "../theme/useDefaultProps.js";
import { block } from "../utils/cn.js";
import { eventBroker } from "../utils/event-broker/index.js";
import { getLinkRelWithFallback } from "../utils/getLinkRelWithFallback.js";
import "./Link.css";
const b = block('link');
export const Link = React.forwardRef(function Link(rawProps, ref) {
const { view = 'normal', visitable = false, underline = false, href, children, extraProps, qa, onClickCapture, ...props } = useDefaultProps('Link', rawProps);
const handleClickCapture = React.useCallback((event) => {
eventBroker.publish({
componentId: 'Link',
eventId: 'click',
domEvent: event,
});
if (onClickCapture) {
onClickCapture(event);
}
}, [onClickCapture]);
return (_jsx("a", { ...props, ...extraProps, ref: ref, href: href, rel: getLinkRelWithFallback(props), onClickCapture: handleClickCapture, className: b({ view, visitable, underline }, props.className), "data-qa": qa, children: children }));
});
//# sourceMappingURL=Link.js.map