From b6dfeb475d88e424378a28ecb3075e0dcd84873a Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Mon, 22 Apr 2024 10:29:45 -0400 Subject: [PATCH] [+] Slot tooltip --- AquaNet/src/components/Tooltip.svelte | 71 +++++++++++++++++++++++++++ AquaNet/src/libs/ui.ts | 8 +-- 2 files changed, 76 insertions(+), 3 deletions(-) create mode 100644 AquaNet/src/components/Tooltip.svelte diff --git a/AquaNet/src/components/Tooltip.svelte b/AquaNet/src/components/Tooltip.svelte new file mode 100644 index 00000000..6b855358 --- /dev/null +++ b/AquaNet/src/components/Tooltip.svelte @@ -0,0 +1,71 @@ + + +{#if isHovered} +
+ +
+{/if} + + diff --git a/AquaNet/src/libs/ui.ts b/AquaNet/src/libs/ui.ts index 8aa26e93..89293533 100644 --- a/AquaNet/src/libs/ui.ts +++ b/AquaNet/src/libs/ui.ts @@ -111,7 +111,7 @@ export const coverNotFound = (e: Event) => (e.target as HTMLImageElement).src = /** * use:tooltip */ -export function tooltip(element: HTMLElement, params: { text: string } | string) { +export function tooltip(element: HTMLElement, params: { text: string, dom: HTMLElement } | string | HTMLElement) { // Create div if not exists if (!document.querySelector('.aqua-tooltip')) { const div = document.createElement('div') @@ -125,7 +125,9 @@ export function tooltip(element: HTMLElement, params: { text: string } | string) let isFocus = false let div: HTMLDivElement = document.querySelector('.aqua-tooltip')! - const p = typeof params === 'string' ? { text: params } : params + const p: string = typeof params === 'string' ? params + : 'dom' in params ? params.dom.outerHTML + : params.outerHTML function updatePosition(event: MouseEvent) { div.style.top = `${event.pageY + 10}px`; @@ -134,7 +136,7 @@ export function tooltip(element: HTMLElement, params: { text: string } | string) function mouseOver(event: MouseEvent) { if (isFocus) return - div.textContent = p.text; + div.innerHTML = p; div.style.display = '' updatePosition(event); isFocus = true;