fix: hovering a sidebar folder or chat always shows that item's preview (#32438)

This commit is contained in:
G30 2026-10-14 16:34:41 -04:00 • committed by GitHub
parent 5fde0485a5
commit 5e2748a03e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 24 additions and 3 deletions

View file

@ -673,7 +673,7 @@
}}
>
<LinkPreview.Trigger
class="flex min-w-0 flex-1 items-center"
class="flex min-w-0 flex-1 -my-1.5 py-1.5 items-center"
href="/c/{id}"
aria-current={id === $chatId ? 'page' : undefined}
onclick={selectChatHandler}

View file

@ -1,3 +1,7 @@
<script context="module">
let closeActiveHoverPreview = null;
</script>
<script>
import { getContext, createEventDispatcher, onMount, onDestroy, tick } from 'svelte';
@ -92,6 +96,17 @@
openPreview = false;
}
const closeHoverPreview = () => {
if (openPreview) {
openPreview = false;
}
};
$: if (openPreview && closeActiveHoverPreview !== closeHoverPreview) {
closeActiveHoverPreview?.();
closeActiveHoverPreview = closeHoverPreview;
}
let name = '';
const formatUnreadCount = (count) =>
@ -445,6 +460,10 @@
onDestroy(() => {
delete folderRegistry[folderId];
if (closeActiveHoverPreview === closeHoverPreview) {
closeActiveHoverPreview = null;
}
if (folderElement) {
folderElement.removeEventListener('dragover', onDragOver);
folderElement.removeEventListener('drop', onDrop);
@ -800,7 +819,9 @@
{/if}
</button>
<div class="translate-y-[0.5px] flex min-w-0 flex-1 items-center gap-1.5 pr-6 text-start">
<div
class="translate-y-[0.5px] flex min-w-0 flex-1 self-stretch items-center gap-1.5 pr-6 text-start"
>
{#if edit}
<input
id="folder-{folderId}-input"
@ -836,7 +857,7 @@
<LinkPreview.Trigger
href={`/folders/${folderId}`}
draggable="false"
class="flex min-w-0 flex-1 items-center gap-1.5"
class="flex min-w-0 flex-1 self-stretch -my-1 items-center gap-1.5"
ondblclick={(e) => {
if (!isWritable || e.ctrlKey || e.metaKey || e.shiftKey || e.altKey) return;
if (clickTimer) {