@smart-react-components/ui
Version:
SRC UI includes React and Styled components.
24 lines (23 loc) • 1.91 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 element_props_1 = __importDefault(require("@smart-react-components/core/element-props"));
const click_events_1 = __importDefault(require("@smart-react-components/core/element-props/click-events"));
const react_1 = __importDefault(require("react"));
const styled_components_1 = require("styled-components");
const WaveEffect_1 = __importDefault(require("../WaveEffect"));
const ButtonAddonElement_1 = __importDefault(require("../components/Button/ButtonAddonElement"));
const wave_effect_1 = require("../util/wave-effect");
const ButtonAddon = (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 El = (react_1.default.createElement(ButtonAddonElement_1.default, Object.assign({ addonPosition: props.position, buttonSize: props.size, buttonSizeSm: props.sizeSm, buttonSizeMd: props.sizeMd, buttonSizeLg: props.sizeLg, buttonSizeXl: props.sizeXl, hasHover: props.hasHover, isDisabled: props.isDisabled, isOutline: props.isOutline, isSeparated: props.isSeparated, isSoft: props.isSoft, palette: props.palette, shape: props.shape }, (!props.isDisabled && (0, element_props_1.default)(props, [click_events_1.default])), props.elementProps), props.children));
return props.isSeparated && props.hasWaveEffect ? react_1.default.createElement(WaveEffect_1.default, { palette: waveEffectPalette }, El) : El;
};
ButtonAddon.defaultProps = {
elementProps: {},
};
ButtonAddon.displayName = 'SRCAddon';
exports.default = ButtonAddon;