@wordpress/components
Version:
UI components for WordPress.
63 lines (59 loc) • 1.32 kB
JavaScript
/**
* External dependencies
*/
import clsx from 'clsx';
/**
* WordPress dependencies
*/
import { info, caution, error, published } from '@wordpress/icons';
/**
* Internal dependencies
*/
import Icon from '../icon';
/**
* Returns an icon based on the badge context.
*
* @return The corresponding icon for the provided context.
*/
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
function contextBasedIcon(intent = 'default') {
switch (intent) {
case 'info':
return info;
case 'success':
return published;
case 'warning':
return caution;
case 'error':
return error;
default:
return null;
}
}
function Badge({
className,
intent = 'default',
children,
...props
}) {
const icon = contextBasedIcon(intent);
const hasIcon = !!icon;
return /*#__PURE__*/_jsxs("span", {
className: clsx('components-badge', className, {
[`is-${intent}`]: intent,
'has-icon': hasIcon
}),
...props,
children: [hasIcon && /*#__PURE__*/_jsx(Icon, {
icon: icon,
size: 16,
fill: "currentColor",
className: "components-badge__icon"
}), /*#__PURE__*/_jsx("span", {
className: "components-badge__content",
children: children
})]
});
}
export default Badge;
//# sourceMappingURL=index.js.map