@smart-react-components/ui
Version:
SRC UI includes React and Styled components.
28 lines (27 loc) • 1.55 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 WaveEffect_1 = __importDefault(require("../WaveEffect"));
const DropdownItemElement_1 = __importDefault(require("../components/Dropdown/DropdownItemElement"));
const DropdownItem = ({ children, elementProps = {}, hasHover, hasWaveEffect, isActive = false, isDisabled, isOutline, isSoft, onClick, palette, setStatus, waveEffectPalette }) => {
const isClicked = react_1.default.useRef(false);
const handleOnClick = (e) => {
if (isClicked.current || isDisabled) {
return;
}
isClicked.current = true;
onClick === null || onClick === void 0 ? void 0 : onClick(e);
if (!e.defaultPrevented || e.target instanceof HTMLAnchorElement) {
setStatus(false);
}
else {
isClicked.current = false;
}
};
const content = (react_1.default.createElement(DropdownItemElement_1.default, Object.assign({ cursor: "$cursor.dropdown", hasHover: hasHover, isActive: isActive, isDisabled: isDisabled, isHovered: false, isOutline: isOutline, isSoft: isSoft, palette: palette, onClick: handleOnClick }, elementProps), children));
return hasWaveEffect ? react_1.default.createElement(WaveEffect_1.default, { palette: waveEffectPalette }, content) : content;
};
exports.default = DropdownItem;
;