From 4cf64eae112411f97f38ce6dda5fb6b37cf5a2c4 Mon Sep 17 00:00:00 2001 From: thislight Date: Mon, 23 Sep 2024 16:00:39 +0800 Subject: [PATCH] TootBottomSheet: scrollIntoView exactly once --- src/timelines/TootBottomSheet.tsx | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/timelines/TootBottomSheet.tsx b/src/timelines/TootBottomSheet.tsx index 9a65bd8..18a83dc 100644 --- a/src/timelines/TootBottomSheet.tsx +++ b/src/timelines/TootBottomSheet.tsx @@ -80,11 +80,12 @@ const TootBottomSheet: Component = (props) => { const toot = () => remoteToot() ?? getCache(acctText(), params.id); - createEffect(() => { + createEffect((lastTootId?: string) => { const tootId = toot()?.id; - if (!tootId) return; + if (!tootId || lastTootId === tootId) return tootId; const elementId = `toot-${tootId}`; document.getElementById(elementId)?.scrollIntoView({ behavior: "smooth" }); + return tootId; }); const [tootContext] = createResource( @@ -109,7 +110,7 @@ const TootBottomSheet: Component = (props) => { const name = resolveCustomEmoji(t.account.displayName, t.account.emojis); return `${name}'s toot`; } - return "A toot"; + return "Someone's toot"; }; const actSession = () => {