UNPKG

@geneui/components

Version:

The Gene UI components library designed for BI tools

35 lines (31 loc) 2.75 kB
import { _ as __rest } from '../tslib.es6-f211516f.js'; import React__default, { useCallback, useMemo } from 'react'; import { c as classnames } from '../index-031ff73c.js'; import { n as noop } from '../index-a0e4e333.js'; import Icon from '../Icon/index.js'; import { s as styleInject } from '../style-inject.es-746bb8ed.js'; import 'prop-types'; import '../dateValidation-67caec66.js'; import '../_commonjsHelpers-24198af3.js'; import 'react-dom'; import '../_rollupPluginBabelHelpers-e8fb2e5c.js'; var css_248z = "[data-gene-ui-version=\"2.16.5\"] .linkButton{align-items:center;color:var(--hero);cursor:pointer;display:flex;max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;padding:0 .8rem}[data-gene-ui-version=\"2.16.5\"] .linkButton:focus-visible{border-radius:.4rem;outline:.2rem var(--hero) solid}[data-gene-ui-version=\"2.16.5\"] .linkButton__icon{display:inline-block}[data-gene-ui-version=\"2.16.5\"] .linkButton-disable{opacity:.3;pointer-events:none}"; styleInject(css_248z); const LinkButton = (_a) => { var { href, onClick, children, iconAfter, className, iconBefore, isDisabled, onMouseDown, ariaLabel } = _a, restProps = __rest(_a, ["href", "onClick", "children", "iconAfter", "className", "iconBefore", "isDisabled", "onMouseDown", "ariaLabel"]); const onClickHandler = useCallback((e) => onClick === null || onClick === void 0 ? void 0 : onClick(e), [onClick]); const onMouseDownHandler = useCallback((e) => onMouseDown === null || onMouseDown === void 0 ? void 0 : onMouseDown(e), [onMouseDown]); const attributes = useMemo(() => (Object.assign(Object.assign({ className: classnames('linkButton', { 'linkButton-disable': isDisabled }, className), onMouseDown: onMouseDownHandler, onClick: onClickHandler }, (ariaLabel ? { 'aria-label': ariaLabel } : {})), restProps)), [isDisabled, className, onMouseDownHandler, onClickHandler, restProps]); const content = useMemo(() => (React__default.createElement(React__default.Fragment, null, iconBefore && React__default.createElement(Icon, { type: iconBefore, className: "linkButton__icon" }), children, iconAfter && React__default.createElement(Icon, { type: iconAfter, className: "linkButton__icon" }))), [iconBefore, children, iconAfter]); return (React__default.createElement(React__default.Fragment, null, href ? (React__default.createElement("a", Object.assign({}, attributes, { href: href }), content)) : (React__default.createElement("button", Object.assign({}, attributes, { type: "button" }), content)))); }; LinkButton.defaultProps = { children: 'LinkButton example', isDisabled: false, onMouseDown: noop }; LinkButton.displayName = 'LinkButton'; export { LinkButton as default };