diff --git a/src/lib/components/standalone-activities/saved-views.svelte b/src/lib/components/standalone-activities/saved-views.svelte index 05dab00dc2..105c28a65a 100644 --- a/src/lib/components/standalone-activities/saved-views.svelte +++ b/src/lib/components/standalone-activities/saved-views.svelte @@ -12,6 +12,7 @@ import Button from '$lib/holocene/button.svelte'; import type { IconName } from '$lib/holocene/icon'; import Icon from '$lib/holocene/icon/icon.svelte'; + import Tooltip from '$lib/holocene/tooltip.svelte'; import { translate } from '$lib/i18n/translate'; import { activityRefresh } from '$lib/stores/activities'; import { activityFilters } from '$lib/stores/filters'; @@ -199,51 +200,6 @@ clearParameters: [currentPageKey], }); }; - - function portal( - node: HTMLElement, - target: HTMLElement | string = document.body, - ) { - const targetEl = - typeof target === 'string' - ? (document.querySelector(target) as HTMLElement | null) - : (target as HTMLElement | null); - if (targetEl) targetEl.appendChild(node); - return { - destroy() { - if (node.parentNode) node.parentNode.removeChild(node); - }, - }; - } - - let showTooltip = $state(false); - let tooltipText: string | undefined = $state(); - let tooltipX = $state(0); - let tooltipY = $state(0); - - const positionTooltipFrom = (el: HTMLElement) => { - const rect = el.getBoundingClientRect(); - tooltipX = Math.round(rect.right + 8); - tooltipY = Math.round(rect.top + 16); - }; - - const onQueryBtnEnter = (e: MouseEvent | FocusEvent, name: string) => { - if ($savedQueryNavOpen) return; - const el = e.currentTarget as HTMLElement; - tooltipText = name; - positionTooltipFrom(el); - showTooltip = true; - }; - - const onQueryBtnMove = (e: MouseEvent | FocusEvent) => { - if (!showTooltip) return; - const el = e.currentTarget as HTMLElement; - positionTooltipFrom(el); - }; - - const onQueryBtnLeave = () => { - showTooltip = false; - };
{#snippet queryButton(view: SavedQuery)} - + {/if} +
+ {/snippet} {#snippet queryBadge({ @@ -503,14 +461,3 @@ {/if} {/snippet} - -{#if showTooltip && tooltipText} - -{/if} diff --git a/src/lib/holocene/tooltip.svelte b/src/lib/holocene/tooltip.svelte index c97b26ae36..fe3c3bcdd6 100644 --- a/src/lib/holocene/tooltip.svelte +++ b/src/lib/holocene/tooltip.svelte @@ -147,7 +147,7 @@ })(); - + {#if hide} diff --git a/src/lib/pages/saved-query-views.svelte b/src/lib/pages/saved-query-views.svelte index 5bce305524..0476ea6663 100644 --- a/src/lib/pages/saved-query-views.svelte +++ b/src/lib/pages/saved-query-views.svelte @@ -12,6 +12,7 @@ import Button from '$lib/holocene/button.svelte'; import type { IconName } from '$lib/holocene/icon'; import Icon from '$lib/holocene/icon/icon.svelte'; + import Tooltip from '$lib/holocene/tooltip.svelte'; import { translate } from '$lib/i18n/translate'; import { workflowFilters } from '$lib/stores/filters'; import { savedQueryNavOpen } from '$lib/stores/nav-open'; @@ -197,51 +198,6 @@ clearParameters: [currentPageKey], }); }; - - function portal( - node: HTMLElement, - target: HTMLElement | string = document.body, - ) { - const targetEl = - typeof target === 'string' - ? (document.querySelector(target) as HTMLElement | null) - : (target as HTMLElement | null); - if (targetEl) targetEl.appendChild(node); - return { - destroy() { - if (node.parentNode) node.parentNode.removeChild(node); - }, - }; - } - - let showTooltip = $state(false); - let tooltipText: string | undefined = $state(); - let tooltipX = $state(0); - let tooltipY = $state(0); - - const positionTooltipFrom = (el: HTMLElement) => { - const rect = el.getBoundingClientRect(); - tooltipX = Math.round(rect.right + 8); - tooltipY = Math.round(rect.top + 16); - }; - - const onQueryBtnEnter = (e: MouseEvent | FocusEvent, name: string) => { - if ($savedQueryNavOpen) return; - const el = e.currentTarget as HTMLElement; - tooltipText = name; - positionTooltipFrom(el); - showTooltip = true; - }; - - const onQueryBtnMove = (e: MouseEvent | FocusEvent) => { - if (!showTooltip) return; - const el = e.currentTarget as HTMLElement; - positionTooltipFrom(el); - }; - - const onQueryBtnLeave = () => { - showTooltip = false; - };
{#snippet queryButton(view: SavedQuery)} - + {/if} +
+ {/snippet} {#snippet queryBadge({ @@ -546,14 +494,3 @@ {/if} {/snippet} - -{#if showTooltip && tooltipText} - -{/if}