wix-style-react
Version:
54 lines (48 loc) • 1.69 kB
JavaScript
import _extends from "@babel/runtime/helpers/extends";
import React from 'react';
import PropTypes from 'prop-types';
import InfoCircle from 'wix-ui-icons-common/InfoCircle';
import InfoCircleSmall from 'wix-ui-icons-common/InfoCircleSmall';
import { TooltipCommonProps } from '../common/PropTypes/TooltipCommon';
import { dataHooks } from './constants';
import Tooltip from '../Tooltip';
import { st, classes } from './InfoIcon.st.css';
var iconComponentBySizeMap = {
small: InfoCircleSmall,
medium: InfoCircle
};
var InfoIcon = function InfoIcon(_ref) {
var dataHook = _ref.dataHook,
content = _ref.content,
size = _ref.size,
tooltipProps = _ref.tooltipProps,
className = _ref.className;
var Icon = iconComponentBySizeMap[size];
return /*#__PURE__*/React.createElement("div", {
className: st(classes.root, className),
"data-size": size,
"data-hook": dataHook
}, /*#__PURE__*/React.createElement(Tooltip, _extends({}, tooltipProps, {
content: content,
dataHook: dataHooks.tooltip
}), /*#__PURE__*/React.createElement(Icon, {
className: classes.icon
})));
};
InfoIcon.displayName = 'InfoIcon';
InfoIcon.propTypes = {
/** A hook for testing purposes. */
dataHook: PropTypes.string,
/** A css class to be applied to the component's root element */
className: PropTypes.string,
/** Controls the icon size. */
size: PropTypes.oneOf(['small', 'medium']),
/** Tooltip content. */
content: PropTypes.node.isRequired,
/** Customize <Tooltip/> appearance with its props component. */
tooltipProps: PropTypes.shape(TooltipCommonProps)
};
InfoIcon.defaultProps = {
size: 'medium'
};
export default InfoIcon;