TootBottomSheet: scrollIntoView exactly once

This commit is contained in:
thislight 2024-09-23 16:00:39 +08:00
parent 8c5ffc0f6b
commit 4cf64eae11

View file

@ -80,11 +80,12 @@ const TootBottomSheet: Component = (props) => {
const toot = () => remoteToot() ?? getCache(acctText(), params.id); const toot = () => remoteToot() ?? getCache(acctText(), params.id);
createEffect(() => { createEffect((lastTootId?: string) => {
const tootId = toot()?.id; const tootId = toot()?.id;
if (!tootId) return; if (!tootId || lastTootId === tootId) return tootId;
const elementId = `toot-${tootId}`; const elementId = `toot-${tootId}`;
document.getElementById(elementId)?.scrollIntoView({ behavior: "smooth" }); document.getElementById(elementId)?.scrollIntoView({ behavior: "smooth" });
return tootId;
}); });
const [tootContext] = createResource( const [tootContext] = createResource(
@ -109,7 +110,7 @@ const TootBottomSheet: Component = (props) => {
const name = resolveCustomEmoji(t.account.displayName, t.account.emojis); const name = resolveCustomEmoji(t.account.displayName, t.account.emojis);
return `${name}'s toot`; return `${name}'s toot`;
} }
return "A toot"; return "Someone's toot";
}; };
const actSession = () => { const actSession = () => {