From 17302a75ee75eb5f55668f5c90bcede9004224c0 Mon Sep 17 00:00:00 2001 From: Coracle-Bot Date: Wed, 16 Sep 2026 17:14:43 +0000 Subject: [PATCH] Read route params from the params prop (#559) --- AGENTS.md | 3 +++ src/routes/[bech32]/+page.svelte | 7 ++++--- src/routes/chat/+layout.svelte | 10 +++------- src/routes/chat/[chat]/+page.svelte | 7 ++++--- src/routes/people/[npub]/+layout.svelte | 11 +++-------- src/routes/people/[npub]/+page.svelte | 7 ++++--- src/routes/spaces/+layout.svelte | 9 ++------- src/routes/spaces/[relay]/+layout.svelte | 11 +++-------- src/routes/spaces/[relay]/+page.svelte | 6 ++++-- src/routes/spaces/[relay]/[h]/+page.svelte | 7 ++++--- src/routes/spaces/[relay]/about/+page.svelte | 6 ++++-- src/routes/spaces/[relay]/admin/+page.svelte | 6 ++++-- src/routes/spaces/[relay]/articles/+page.svelte | 6 ++++-- .../spaces/[relay]/articles/[address]/+page.svelte | 7 ++++--- .../spaces/[relay]/articles/create/+page.svelte | 5 ++++- src/routes/spaces/[relay]/calendar/+page.svelte | 6 ++++-- .../spaces/[relay]/calendar/[address]/+page.svelte | 7 ++++--- src/routes/spaces/[relay]/chat/+page.svelte | 6 ++++-- src/routes/spaces/[relay]/classifieds/+page.svelte | 5 ++++- .../spaces/[relay]/classifieds/[address]/+page.svelte | 7 ++++--- src/routes/spaces/[relay]/directory/+page.svelte | 6 ++++-- src/routes/spaces/[relay]/goals/+page.svelte | 6 ++++-- src/routes/spaces/[relay]/goals/[id]/+page.svelte | 7 ++++--- src/routes/spaces/[relay]/library/+page.svelte | 5 ++++- src/routes/spaces/[relay]/polls/+page.svelte | 6 ++++-- src/routes/spaces/[relay]/polls/[id]/+page.svelte | 7 ++++--- src/routes/spaces/[relay]/threads/+page.svelte | 6 ++++-- src/routes/spaces/[relay]/threads/[id]/+page.svelte | 7 ++++--- 28 files changed, 106 insertions(+), 83 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 642d84e3..4f37ef36 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -172,6 +172,9 @@ callbacks and hot paths. 2. Use `+page.svelte` for page component 3. Use `+layout.svelte` for shared layouts 4. Top-level sync logic goes in root `+layout.svelte` +5. Read params from the `params` prop, typed with `PageProps`/`LayoutProps` from the route's own + `./$types`. SvelteKit passes them down in the same update as the component swap, while the + `page` store is set a tick later. Only code outside `src/routes/` reads `$page.params`. ### Loading Data from Network diff --git a/src/routes/[bech32]/+page.svelte b/src/routes/[bech32]/+page.svelte index 24f01fd4..10a04aa2 100644 --- a/src/routes/[bech32]/+page.svelte +++ b/src/routes/[bech32]/+page.svelte @@ -1,18 +1,19 @@ -{#key $page.params.npub} +{#key params.npub} {@render children?.()} {/key} diff --git a/src/routes/people/[npub]/+page.svelte b/src/routes/people/[npub]/+page.svelte index 7cd45b8c..b2bdc473 100644 --- a/src/routes/people/[npub]/+page.svelte +++ b/src/routes/people/[npub]/+page.svelte @@ -1,8 +1,6 @@ {#key params.relay} diff --git a/src/routes/spaces/[relay]/+layout.svelte b/src/routes/spaces/[relay]/+layout.svelte index 423ae746..e8b4a1f2 100644 --- a/src/routes/spaces/[relay]/+layout.svelte +++ b/src/routes/spaces/[relay]/+layout.svelte @@ -4,7 +4,6 @@ diff --git a/src/routes/spaces/[relay]/admin/+page.svelte b/src/routes/spaces/[relay]/admin/+page.svelte index b21642eb..9840459b 100644 --- a/src/routes/spaces/[relay]/admin/+page.svelte +++ b/src/routes/spaces/[relay]/admin/+page.svelte @@ -1,6 +1,5 @@ diff --git a/src/routes/spaces/[relay]/articles/+page.svelte b/src/routes/spaces/[relay]/articles/+page.svelte index 590844c3..6c1842f0 100644 --- a/src/routes/spaces/[relay]/articles/+page.svelte +++ b/src/routes/spaces/[relay]/articles/+page.svelte @@ -2,7 +2,6 @@ import {onDestroy, onMount} from "svelte" import {readable} from "svelte/store" import type {Readable} from "svelte/store" - import {page} from "$app/stores" import {goto} from "$app/navigation" import {sortBy, partition, spec, max, pushToMapKey} from "@welshman/lib" import type {Maybe} from "@welshman/lib" @@ -24,8 +23,11 @@ import {makeCommentFilter} from "@app/content" import {isFeedLoading, makeFeed, makeFeedContext, makeScrollLoader} from "@app/feeds" import {makeArticleCreatePath} from "@app/routes" + import type {PageProps} from "./$types" - const url = decodeRelay($page.params.relay!) + const {params}: PageProps = $props() + + const url = decodeRelay(params.relay) const context = makeFeedContext({relays: [url]}) onDestroy(context.cleanup) diff --git a/src/routes/spaces/[relay]/articles/[address]/+page.svelte b/src/routes/spaces/[relay]/articles/[address]/+page.svelte index 7ee82a63..41c009c4 100644 --- a/src/routes/spaces/[relay]/articles/[address]/+page.svelte +++ b/src/routes/spaces/[relay]/articles/[address]/+page.svelte @@ -1,9 +1,7 @@ diff --git a/src/routes/spaces/[relay]/classifieds/+page.svelte b/src/routes/spaces/[relay]/classifieds/+page.svelte index 7ca8bef5..d3cec899 100644 --- a/src/routes/spaces/[relay]/classifieds/+page.svelte +++ b/src/routes/spaces/[relay]/classifieds/+page.svelte @@ -35,8 +35,11 @@ } from "@app/classifieds" import {reader} from "@app/core" import {pushModal} from "@app/modal" + import type {PageProps} from "./$types" - const url = decodeRelay($page.params.relay!) + const {params}: PageProps = $props() + + const url = decodeRelay(params.relay) const context = makeFeedContext({relays: [url]}) onDestroy(context.cleanup) diff --git a/src/routes/spaces/[relay]/classifieds/[address]/+page.svelte b/src/routes/spaces/[relay]/classifieds/[address]/+page.svelte index 6c0669c4..813020d1 100644 --- a/src/routes/spaces/[relay]/classifieds/[address]/+page.svelte +++ b/src/routes/spaces/[relay]/classifieds/[address]/+page.svelte @@ -1,9 +1,7 @@