@talend/react-faceted-search
Version:
72 lines (71 loc) • 2.23 kB
JavaScript
import classnames from 'classnames';
import PropTypes from 'prop-types';
import { operatorsPropTypes } from '../../facetedSearch.propTypes';
import { BadgeOverlay } from '../BadgeOverlay';
import { BadgeOperatorPopover } from './BadgeOperatorPopover.component';
import styles from './BadgeOperator.module.scss';
import { Badge } from "@talend/react-components";
import { jsx as _jsx } from "react/jsx-runtime";
const BadgeOperatorOverlay = ({
id,
onClick,
onChangeOverlay,
onHideOverlay,
opened,
operatorIconName,
operatorLabel,
operators,
readOnly,
size
}) => {
/**
* Trigger the callback passed in props
* @param {function} setOverlayOpened callback used to open / close the overlay
*/
const onClickRow = setOverlayOpened => (event, name) => {
if (onClick) {
onClick(event, name, setOverlayOpened);
}
};
const onHide = event => {
if (onHideOverlay) {
onHideOverlay(event);
}
};
return /*#__PURE__*/_jsx("div", {
className: classnames(styles['tc-badge-operator'], {
[styles['tc-badge-operator-small']]: Badge.SIZES.small === size,
[styles['tc-badge-operator-large']]: Badge.SIZES.large === size
}),
children: /*#__PURE__*/_jsx(BadgeOverlay, {
className: styles['tc-badge-operator-button'],
iconName: operatorIconName,
id: `${id}-operator`,
label: operatorLabel,
onChange: onChangeOverlay,
onHide: onHide,
opened: opened,
readOnly: readOnly,
children: setOverlayOpened => /*#__PURE__*/_jsx(BadgeOperatorPopover, {
id: `${id}-operator`,
operators: operators,
onClick: onClickRow(setOverlayOpened)
})
})
});
};
BadgeOperatorOverlay.propTypes = {
id: PropTypes.string.isRequired,
onClick: PropTypes.func,
onChangeOverlay: PropTypes.func,
onHideOverlay: PropTypes.func,
opened: PropTypes.bool,
operatorIconName: PropTypes.string,
operatorLabel: PropTypes.string,
operators: operatorsPropTypes.isRequired,
readOnly: PropTypes.bool,
size: PropTypes.oneOf(Object.values(Badge.SIZES))
};
// eslint-disable-next-line import/prefer-default-export
export { BadgeOperatorOverlay };
//# sourceMappingURL=BadgeOperatorOverlay.component.js.map