- client: Fix query log bugs

Squashed commit of the following:

commit 188bbad32a2af8a1867fc3ef91d81cda6aa94853
Merge: 15db9e9c ec6e0bea
Author: Andrey Meshkov <am@adguard.com>
Date:   Thu Jun 18 22:43:11 2020 +0300

    Merge branch 'master' into fix/1810

commit 15db9e9c1d
Author: ArtemBaskal <a.baskal@adguard.com>
Date:   Thu Jun 18 19:01:10 2020 +0300

    Open tooltip on hover, show scroll on overflow y

commit 19c013378d
Author: ArtemBaskal <a.baskal@adguard.com>
Date:   Thu Jun 18 17:17:46 2020 +0300

    Replace tooltip component

commit 7e7103dc08
Author: ArtemBaskal <a.baskal@adguard.com>
Date:   Thu Jun 18 14:21:54 2020 +0300

    -client: Fix query log bugs
This commit is contained in:
Andrey Meshkov
2020-06-18 22:53:02 +03:00
parent ec6e0bea07
commit aa7b3c33d5
13 changed files with 122 additions and 249 deletions

View File

@@ -1,55 +1,50 @@
import React, { useState } from 'react';
import React from 'react';
import PropTypes from 'prop-types';
import CustomTooltip from '../Tooltip/CustomTooltip';
import TooltipTrigger from 'react-popper-tooltip';
import { Trans } from 'react-i18next';
import classNames from 'classnames';
import './Tooltip.css';
import 'react-popper-tooltip/dist/styles.css';
import { HIDE_TOOLTIP_DELAY } from '../../../helpers/constants';
const getHintElement = ({
className,
contentItemClass,
columnClass,
dataTip,
canShowTooltip = true,
xlinkHref,
content,
title,
place,
placement,
tooltipClass,
trigger,
overridePosition,
scrollHide,
renderContent,
}) => {
const id = 'id';
const [isHovered, hover] = useState(false);
const openTooltip = () => hover(true);
const closeTooltip = () => hover(false);
return <div onMouseEnter={openTooltip}
onMouseLeave={closeTooltip}>
<div data-tip={dataTip}
data-for={dataTip ? id : undefined}
data-event={trigger}
content,
renderContent = React.Children.map(
content,
(item, idx) => <div key={idx} className={contentItemClass}>
<Trans>{item || '—'}</Trans>
</div>,
),
}) => <TooltipTrigger placement={placement} trigger="hover" delayHide={HIDE_TOOLTIP_DELAY} tooltip={
({
tooltipRef,
getTooltipProps,
}) => <div {...getTooltipProps({
ref: tooltipRef,
className: classNames('tooltip__container', tooltipClass, { 'd-none': !canShowTooltip }),
})}
>
{title && <div className="pb-4 h-25 grid-content font-weight-bold">
<Trans>{title}</Trans>
</div>}
<div className={classNames(columnClass)}>{renderContent}</div>
</div>
}>{({
getTriggerProps, triggerRef,
}) => <span {...getTriggerProps({ ref: triggerRef })}>
{xlinkHref && <svg className={className}>
<use xlinkHref={`#${xlinkHref}`} />
</svg>}
</div>
{isHovered && dataTip
&& <CustomTooltip
className={tooltipClass}
id={id}
columnClass={columnClass}
contentItemClass={contentItemClass}
title={title}
place={place}
content={content}
trigger={trigger}
overridePosition={overridePosition}
scrollHide={scrollHide}
renderContent={renderContent}
/>}
</div>;
};
</span>}
</TooltipTrigger>;
getHintElement.propTypes = {
className: PropTypes.string,
@@ -57,15 +52,9 @@ getHintElement.propTypes = {
columnClass: PropTypes.string,
tooltipClass: PropTypes.string,
title: PropTypes.string,
place: PropTypes.string,
dataTip: PropTypes.string,
placement: PropTypes.string,
canShowTooltip: PropTypes.string,
xlinkHref: PropTypes.string,
overridePosition: PropTypes.func,
scrollHide: PropTypes.bool,
trigger: PropTypes.oneOfType([
PropTypes.string,
PropTypes.arrayOf(PropTypes.string),
]),
content: PropTypes.oneOfType([
PropTypes.string,
PropTypes.array,