diff options
Diffstat (limited to 'src/lib/Tooltip/LinkedTooltip.svelte')
| -rw-r--r-- | src/lib/Tooltip/LinkedTooltip.svelte | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/src/lib/Tooltip/LinkedTooltip.svelte b/src/lib/Tooltip/LinkedTooltip.svelte index 82147536..bbf0ffe5 100644 --- a/src/lib/Tooltip/LinkedTooltip.svelte +++ b/src/lib/Tooltip/LinkedTooltip.svelte @@ -1,6 +1,7 @@ <script lang="ts"> import tooltipPosition from "$stores/tooltipPosition"; import { fade } from "svelte/transition"; +import { onDestroy } from "svelte"; export let id: string | undefined = undefined; export let pin: string | undefined = undefined; @@ -20,10 +21,24 @@ let hideTimeout: number | null = null; let debounceTimer: number | null = null; let opacity = 0; +onDestroy(() => { + if (hideTimeout !== null) clearTimeout(hideTimeout); + + if (debounceTimer !== null) clearTimeout(debounceTimer); + + if (tooltipDiv && tooltipDiv.parentNode === document.body) { + document.body.removeChild(tooltipDiv); + tooltipDiv = null; + } +}); + const createTooltip = () => { if (!tooltipDiv) { tooltipDiv = document.createElement("div"); tooltipDiv.style.position = "absolute"; + tooltipDiv.style.top = "-9999px"; + tooltipDiv.style.left = "-9999px"; + tooltipDiv.style.visibility = "hidden"; tooltipDiv.style.zIndex = "1000"; opacity = 0; tooltipDiv.style.pointerEvents = "none"; |