@smart-react-components/ui
Version:
SRC UI includes React and Styled components.
32 lines (31 loc) • 1.95 kB
JavaScript
"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const A_1 = __importDefault(require("@smart-react-components/core/Element/A"));
const useLink_1 = __importDefault(require("@smart-react-components/router/hooks/useLink"));
const react_1 = __importDefault(require("react"));
const styled_components_1 = require("styled-components");
const WaveEffect_1 = __importDefault(require("../WaveEffect"));
const BreadcrumbItemElement_1 = __importDefault(require("../components/Breadcrumb/BreadcrumbItemElement"));
const wave_effect_1 = require("../util/wave-effect");
const BreadcrumbLink = (props) => {
const theme = (0, styled_components_1.useTheme)();
const waveEffectPalette = react_1.default.useMemo(() => (0, wave_effect_1.getWaveEffectPalette)(props, theme.$.vars.isDarkMode), [props.palette, props.isOutline, props.isSoft, props.waveEffectPalette, theme.$.vars.isDarkMode]);
const { children, handleOnClick, isActive, to } = (0, useLink_1.default)({
children: props.children,
isDisabled: props.isDisabled,
isExact: props.isExact,
onClick: null,
path: props.path,
to: props.to,
});
const AnchorEl = (react_1.default.createElement(A_1.default, Object.assign({}, props.elementProps, { href: to, onClick: handleOnClick }), children));
const El = props.hasWaveEffect ? react_1.default.createElement(WaveEffect_1.default, { palette: waveEffectPalette }, AnchorEl) : AnchorEl;
return (react_1.default.createElement(BreadcrumbItemElement_1.default, { isActive: isActive, isDisabled: props.isDisabled, isOutline: props.isOutline, isSoft: props.isSoft, palette: props.palette, separator: props.separator, shape: props.shape }, El));
};
BreadcrumbLink.defaultProps = {
isExact: true,
};
exports.default = BreadcrumbLink;