Updates #684 Squashed commit of the following: commit 2c5ac44d3edb55d0d3be169fb0bbfb336920964d Merge: 0fce61dfa733d6c1fcAuthor: Ildar Kamalov <ik@adguard.com> Date: Mon Oct 16 10:08:58 2023 +0300 Merge branch 'master' into ADG-7200 commit 0fce61dfad31951c3d5a484a14383c58964b47f0 Author: Ildar Kamalov <ik@adguard.com> Date: Fri Oct 13 16:38:13 2023 +0300 fix dashboard clients table block/unblock button commit ef5d72fd7cac81b70503c8813cf6e96952ec3b65 Merge: f49281b88506d71310Author: Ildar Kamalov <ik@adguard.com> Date: Fri Oct 13 16:16:21 2023 +0300 Merge branch 'master' into ADG-7200 commit f49281b8818728ab298d769b8164919ea415d6c9 Author: Ildar Kamalov <ik@adguard.com> Date: Thu Oct 12 11:25:05 2023 +0300 fix disabled commit 0031861174108214e9741852f6e00c5873c3b20f Author: Ildar Kamalov <ik@adguard.com> Date: Thu Oct 12 11:20:50 2023 +0300 fix icon color commit 2916937b0d6a0d126bd48e59f41a6fcbc4622ea1 Author: Ildar Kamalov <ik@adguard.com> Date: Thu Oct 12 11:15:55 2023 +0300 changelog commit 34493c974fb9304267e9149360c802d9364dd7de Merge: d3267bbe9d3fabdda4Author: Ildar Kamalov <ik@adguard.com> Date: Thu Oct 12 11:13:43 2023 +0300 Merge branch 'master' into ADG-7200 commit d3267bbe9477d6db0783534cb4ab4f7afc4d63b0 Merge: 58a6c766f6a3661562Author: Ildar Kamalov <ik@adguard.com> Date: Wed Oct 11 16:46:39 2023 +0300 Merge branch 'master' into ADG-7200 commit 58a6c766f3b783f0e2fdc36d40889042f3c74f2f Author: Ildar Kamalov <ik@adguard.com> Date: Wed Oct 11 16:46:13 2023 +0300 ADG-7200 move block/unblock button to the tooltip menu
77 lines
2.3 KiB
JavaScript
77 lines
2.3 KiB
JavaScript
import React from 'react';
|
|
import PropTypes from 'prop-types';
|
|
import { Trans } from 'react-i18next';
|
|
import classNames from 'classnames';
|
|
import { processContent } from '../../../helpers/helpers';
|
|
import Tooltip from '../../ui/Tooltip';
|
|
import 'react-popper-tooltip/dist/styles.css';
|
|
import './IconTooltip.css';
|
|
import { SHOW_TOOLTIP_DELAY } from '../../../helpers/constants';
|
|
|
|
const IconTooltip = ({
|
|
className,
|
|
contentItemClass,
|
|
columnClass,
|
|
triggerClass,
|
|
canShowTooltip = true,
|
|
xlinkHref,
|
|
title,
|
|
placement,
|
|
tooltipClass,
|
|
content,
|
|
trigger,
|
|
onVisibilityChange,
|
|
defaultTooltipShown,
|
|
delayHide,
|
|
renderContent = content ? React.Children.map(
|
|
processContent(content),
|
|
(item, idx) => <div key={idx} className={contentItemClass}>
|
|
<Trans>{item || '—'}</Trans>
|
|
</div>,
|
|
) : null,
|
|
}) => {
|
|
const tooltipContent = <>
|
|
{title
|
|
&& <div className="pb-4 h-25 grid-content font-weight-bold"><Trans>{title}</Trans></div>}
|
|
<div className={classNames(columnClass)}>{renderContent}</div>
|
|
</>;
|
|
|
|
const tooltipClassName = classNames('tooltip-custom__container', tooltipClass, { 'd-none': !canShowTooltip });
|
|
|
|
return <Tooltip
|
|
className={tooltipClassName}
|
|
content={tooltipContent}
|
|
placement={placement}
|
|
triggerClass={triggerClass}
|
|
trigger={trigger}
|
|
onVisibilityChange={onVisibilityChange}
|
|
delayShow={trigger === 'click' ? 0 : SHOW_TOOLTIP_DELAY}
|
|
delayHide={delayHide}
|
|
defaultTooltipShown={defaultTooltipShown}
|
|
>
|
|
{xlinkHref && <svg className={className}>
|
|
<use xlinkHref={`#${xlinkHref}`} />
|
|
</svg>}
|
|
</Tooltip>;
|
|
};
|
|
|
|
IconTooltip.propTypes = {
|
|
className: PropTypes.string,
|
|
trigger: PropTypes.string,
|
|
triggerClass: PropTypes.string,
|
|
contentItemClass: PropTypes.string,
|
|
columnClass: PropTypes.string,
|
|
tooltipClass: PropTypes.string,
|
|
title: PropTypes.string,
|
|
placement: PropTypes.string,
|
|
canShowTooltip: PropTypes.bool,
|
|
xlinkHref: PropTypes.string,
|
|
content: PropTypes.node,
|
|
renderContent: PropTypes.arrayOf(PropTypes.element),
|
|
onVisibilityChange: PropTypes.func,
|
|
defaultTooltipShown: PropTypes.bool,
|
|
delayHide: PropTypes.number,
|
|
};
|
|
|
|
export default IconTooltip;
|