UNPKG

@smart-react-components/ui

Version:
33 lines (32 loc) 1.77 kB
"use strict"; 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;