@smart-react-components/ui
Version:
SRC UI includes React and Styled components.
33 lines (32 loc) • 1.77 kB
JavaScript
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
const react_1 = __importDefault(require("react"));
const DropdownItemElement_1 = __importDefault(require("../components/Dropdown/DropdownItemElement"));
const WaveEffect_1 = __importDefault(require("../WaveEffect"));
const Option = ({ active, children, cursorKey, hasHover, hasWaveEffect, hovered, isDisabled, isOutline, isSoft, palette, setActive, setHovered, value, waveEffectPalette }) => {
const handleOnClick = () => {
if (isDisabled) {
return;
}
if (!Array.isArray(active)) {
setActive(value);
}
else {
if (!active.includes(value)) {
setActive([...active, value]);
}
else {
setActive(active.filter(i => i !== value));
}
}
};
const isActive = () => !Array.isArray(active) ? (value !== null && value === active) : active.includes(value);
const isHovered = () => hovered !== undefined && hovered === value;
const content = (react_1.default.createElement(DropdownItemElement_1.default, Object.assign({ cursor: `$cursor.${cursorKey}`, hasHover: hasHover, isActive: isActive(), isDisabled: isDisabled, isHovered: isHovered(), isOutline: isOutline, isSoft: isSoft, palette: palette, onClick: handleOnClick }, (setHovered && !isDisabled) && { onMouseEnter: () => setHovered(value) }), children));
return hasWaveEffect ? react_1.default.createElement(WaveEffect_1.default, { palette: waveEffectPalette }, content) : content;
};
Option.displayName = 'Option';
exports.default = Option;
;