react-lightning-design-system
Version:
Salesforce Lightning Design System components built with React
68 lines (66 loc) • 1.88 kB
JavaScript
import React from 'react';
import classnames from 'classnames';
import { Icon } from './Icon';
import { Button } from './Button';
import { useEventCallback } from './hooks';
/**
*
*/
/**
*
*/
export var Pill = function Pill(props) {
var icon = props.icon,
disabled = props.disabled,
label = props.label,
title = props.title,
truncate = props.truncate,
className = props.className,
pillRef = props.pillRef,
onClick = props.onClick,
onRemove = props.onRemove;
var onPillRemove = useEventCallback(function (e) {
e.preventDefault();
e.stopPropagation();
onRemove === null || onRemove === void 0 || onRemove();
});
var onKeyDown = useEventCallback(function (e) {
if (e.keyCode === 8 || e.keyCode === 46) {
// Bacspace / DEL
onPillRemove(e);
}
});
var pillClassNames = classnames('slds-pill', {
'slds-pill_link': !disabled
}, {
'slds-truncate': truncate
}, className);
return /*#__PURE__*/React.createElement("span", {
ref: pillRef,
className: pillClassNames,
onKeyDown: onKeyDown,
onClick: onClick
}, icon && icon.icon ? /*#__PURE__*/React.createElement("span", {
className: "slds-pill__icon_container"
}, /*#__PURE__*/React.createElement(Icon, {
category: icon.category,
icon: icon.icon
})) : undefined, disabled ? /*#__PURE__*/React.createElement("span", {
className: "slds-pill__label",
title: title
}, label) : /*#__PURE__*/React.createElement("a", {
className: "slds-pill__action",
title: title
}, /*#__PURE__*/React.createElement("span", {
className: "slds-pill__label"
}, label)), /*#__PURE__*/React.createElement(Button, {
disabled: disabled,
className: "slds-pill__remove",
type: "icon",
icon: "close",
alt: "Remove",
tabIndex: -1,
onClick: onPillRemove
}));
};
//# sourceMappingURL=Pill.js.map