From 9bd62909684056b56f4d0e459ccad7d086c8b38e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Torkel=20=C3=96degaard?= Date: Tue, 1 Mar 2022 13:12:14 +0100 Subject: [PATCH] Prometheus: Query builder operation docs popover improvements (#46006) --- .../shared/OperationInfoButton.tsx | 45 +++++++++---------- 1 file changed, 21 insertions(+), 24 deletions(-) diff --git a/public/app/plugins/datasource/prometheus/querybuilder/shared/OperationInfoButton.tsx b/public/app/plugins/datasource/prometheus/querybuilder/shared/OperationInfoButton.tsx index a0f9645d880..075dd63d5d6 100644 --- a/public/app/plugins/datasource/prometheus/querybuilder/shared/OperationInfoButton.tsx +++ b/public/app/plugins/datasource/prometheus/querybuilder/shared/OperationInfoButton.tsx @@ -3,8 +3,7 @@ import { GrafanaTheme2, renderMarkdown } from '@grafana/data'; import { FlexItem } from '@grafana/experimental'; import { Button, Portal, useStyles2 } from '@grafana/ui'; import React, { useState } from 'react'; -import { usePopper } from 'react-popper'; -import { useToggle } from 'react-use'; +import { usePopperTooltip } from 'react-popper-tooltip'; import { QueryBuilderOperation, QueryBuilderOperationDef } from './types'; export interface Props { @@ -14,41 +13,39 @@ export interface Props { export const OperationInfoButton = React.memo(({ def, operation }) => { const styles = useStyles2(getStyles); - const [popperTrigger, setPopperTrigger] = useState(null); - const [popover, setPopover] = useState(null); - const [isOpen, toggleIsOpen] = useToggle(false); - - const popper = usePopper(popperTrigger, popover, { + const [show, setShow] = useState(false); + const { getTooltipProps, setTooltipRef, setTriggerRef, visible } = usePopperTooltip({ placement: 'top', - modifiers: [ - { name: 'arrow', enabled: true }, - { - name: 'preventOverflow', - enabled: true, - options: { - rootBoundary: 'viewport', - }, - }, - ], + visible: show, + offset: [0, 16], + onVisibleChange: setShow, + interactive: true, + trigger: ['click'], }); return ( <>