design-react-kit
Version:
Componenti React per Bootstrap 5
44 lines • 1.69 kB
JavaScript
import React from 'react';
import classNames from 'classnames';
const handleDisabledOnClick = (e) => {
e.preventDefault();
};
export const LinkListItem = ({ className, active, disabled, header, divider, bold, large, href, tag = 'a', wrapperClassName, testId, children, inDropdown, ...attributes }) => {
let Tag = tag;
const classes = classNames(className, {
active,
disabled,
header,
divider,
large: large,
medium: bold,
'dropdown-item': inDropdown
}, 'list-item');
// Prevent click event when disabled.
const handlers = {};
if (disabled) {
handlers.onClick = handleDisabledOnClick;
}
if (header) {
Tag = 'h3';
}
else if (divider) {
Tag = 'span';
}
if (inDropdown) {
attributes['role'] = 'menuitem';
attributes['tabIndex'] = 0;
}
if (header && href) {
return (React.createElement("li", { className: wrapperClassName, "data-testid": testId },
React.createElement(Tag, null,
React.createElement("a", { href: href || '#', ...attributes, className: classes, ...handlers }, children))));
}
return (React.createElement("li", { className: wrapperClassName, "data-testid": testId },
React.createElement(Tag, { role: attributes.onClick ? 'button' : undefined, ...attributes, className: classes, href: href, ...handlers }, children)));
};
const LinkListTitleIconWrapper = ({ children }) => {
return React.createElement("span", { className: 'list-item-title-icon-wrapper' }, children);
};
LinkListItem.TitleIconWrapper = LinkListTitleIconWrapper;
//# sourceMappingURL=LinkListItem.js.map