From 3c1d8a486764747c28f8f5c08f0ca9eb65caf86d Mon Sep 17 00:00:00 2001 From: h Date: Fri, 16 Oct 2026 15:54:41 +0000 Subject: [PATCH] fix(keys): the first row scrolls to the page top whenever it fits the first screen --- src/lib/list-nav.svelte.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/lib/list-nav.svelte.ts b/src/lib/list-nav.svelte.ts index 115c923..157c1e0 100644 --- a/src/lib/list-nav.svelte.ts +++ b/src/lib/list-nav.svelte.ts @@ -1,7 +1,5 @@ import { type Binding, useKeys } from "#lib/keys.svelte.js"; -const TOP_REACH = 0.6; - interface Options { edit?: (item: T) => void; extra?: () => Binding[]; @@ -66,10 +64,9 @@ export class ListNav { if (!row) { return; } - const nearTop = - row.getBoundingClientRect().top + window.scrollY < - window.innerHeight * TOP_REACH; - if (this.cursor === 0 && block === "nearest" && nearTop) { + const fitsFirstScreen = + row.getBoundingClientRect().bottom + window.scrollY <= window.innerHeight; + if (this.cursor === 0 && block === "nearest" && fitsFirstScreen) { window.scrollTo({ top: 0 }); return; }