From 621c0d839cd0b15b6d0b8da010c53b2c2927e05e Mon Sep 17 00:00:00 2001 From: Jon Staab Date: Tue, 17 Feb 2026 09:43:32 -0800 Subject: [PATCH] tweak how at works --- src/routes/spaces/[relay]/[h]/+page.svelte | 10 +++++----- src/routes/spaces/[relay]/chat/+page.svelte | 10 +++++----- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/routes/spaces/[relay]/[h]/+page.svelte b/src/routes/spaces/[relay]/[h]/+page.svelte index b5fca7ed..c97169a6 100644 --- a/src/routes/spaces/[relay]/[h]/+page.svelte +++ b/src/routes/spaces/[relay]/[h]/+page.svelte @@ -61,7 +61,7 @@ const room = deriveRoom(url, h) const shouldProtect = canEnforceNip70(url) const membershipStatus = deriveUserRoomMembershipStatus(url, h) - const at = $derived(parseInt($page.url.searchParams.get("at") || String(now()))) + const at = $derived(parseInt($page.url.searchParams.get("at")!)) const showRoomDetail = () => pushModal(RoomDetail, {url, h}) @@ -168,7 +168,7 @@ } const manageScrollPosition = () => { - showScrollButton = Boolean(at) || Math.abs(element?.scrollTop || 0) > 1500 + showScrollButton = !isNaN(at) || Math.abs(element?.scrollTop || 0) > 1500 const newMessages = document.getElementById("new-messages") @@ -184,7 +184,7 @@ } } - if (!userHasScrolled && $page.url.searchParams.get("at")) { + if (!userHasScrolled && !isNaN(at)) { const targetEvent = $events.find(event => event.created_at >= at) if (targetEvent) { @@ -211,7 +211,7 @@ document.getElementById("new-messages")?.scrollIntoView({behavior: "smooth", block: "center"}) const scrollToBottom = () => { - if ($page.url.searchParams.get("at")) { + if (!isNaN(at)) { goto($page.url.pathname, {replaceState: true}) } else { element?.scrollTo({top: 0, behavior: "smooth"}) @@ -305,8 +305,8 @@ cleanup?.() const feed = makeFeed({ - at, url, + at: at || now(), element: element!, filters: [{kinds: [...MESSAGE_KINDS, ROOM_ADD_MEMBER, ROOM_REMOVE_MEMBER], "#h": [h]}], onBackwardExhausted: () => { diff --git a/src/routes/spaces/[relay]/chat/+page.svelte b/src/routes/spaces/[relay]/chat/+page.svelte index e41ff886..ed98c4b7 100644 --- a/src/routes/spaces/[relay]/chat/+page.svelte +++ b/src/routes/spaces/[relay]/chat/+page.svelte @@ -37,7 +37,7 @@ const lastChecked = $checked[$page.url.pathname] const url = decodeRelay($page.params.relay!) const shouldProtect = canEnforceNip70(url) - const at = $derived(parseInt($page.url.searchParams.get("at") || String(now()))) + const at = $derived(parseInt($page.url.searchParams.get("at")!)) const replyTo = (event: TrustedEvent) => { parent = event @@ -106,7 +106,7 @@ } const manageScrollPosition = () => { - showScrollButton = Boolean(at) || Math.abs(element?.scrollTop || 0) > 1500 + showScrollButton = !isNaN(at) || Math.abs(element?.scrollTop || 0) > 1500 const newMessages = document.getElementById("new-messages") @@ -122,7 +122,7 @@ } } - if (!userHasScrolled && $page.url.searchParams.get("at")) { + if (!userHasScrolled && !isNaN(at)) { const targetEvent = $events.find(event => event.created_at >= at) if (targetEvent) { @@ -149,7 +149,7 @@ document.getElementById("new-messages")?.scrollIntoView({behavior: "smooth", block: "center"}) const scrollToBottom = () => { - if ($page.url.searchParams.get("at")) { + if (!isNaN(at)) { goto($page.url.pathname, {replaceState: true}) } else { element?.scrollTo({top: 0, behavior: "smooth"}) @@ -241,8 +241,8 @@ cleanup?.() const feed = makeFeed({ - at, url, + at: at || now(), element: element!, filters: [{kinds: [...MESSAGE_KINDS, RELAY_ADD_MEMBER, RELAY_REMOVE_MEMBER]}], onBackwardExhausted: () => {