@vectara/vectara-ui
Version:
Vectara's design system, codified as a React and Sass component library
37 lines (36 loc) • 1.79 kB
JavaScript
var __rest = (this && this.__rest) || function (s, e) {
var t = {};
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
t[p] = s[p];
if (s != null && typeof Object.getOwnPropertySymbols === "function")
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
t[p[i]] = s[p[i]];
}
return t;
};
import { jsx as _jsx } from "react/jsx-runtime";
import classNames from "classnames";
import { getTrackingProps } from "../../utils/getTrackingProps";
import { useVuiContext } from "../context/Context";
export const VuiLinkInternal = (_a) => {
var rest = __rest(_a, []);
return _jsx(VuiLink, Object.assign({}, rest, { track: true }));
};
export const VuiLink = (_a) => {
var { children, href, target, onClick, className, track, isAnchor, ref } = _a, rest = __rest(_a, ["children", "href", "target", "onClick", "className", "track", "isAnchor", "ref"]);
const { createLink } = useVuiContext();
if (!href) {
return (_jsx("button", Object.assign({ className: classNames("vuiLink", "vuiLink--button", className), onClick: onClick, type: "button" }, rest, { children: children })));
}
const props = Object.assign(Object.assign({}, rest), getTrackingProps(track));
if (target === "_blank") {
props.target = target;
}
if (isAnchor) {
return (_jsx("a", Object.assign({ className: classNames("vuiLink", className), href: href, onClick: onClick, ref: ref }, props, { children: children })));
}
return createLink(Object.assign({ ref, className: classNames("vuiLink", className), href,
onClick,
children }, props));
};