UNPKG

wix-style-react

Version:
54 lines (48 loc) 1.69 kB
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;