From ea464acba96ddc989f30c7f7ca0cc86b4fcb40a1 Mon Sep 17 00:00:00 2001 From: Claude Date: Sun, 24 May 2026 09:46:41 +0000 Subject: [PATCH] Make compact Header self-contained; cut jetstream cap to 20 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The sticky compact Header wasn't engaging on the homepage because its parent (the inner container-narrow div wrapping just the header) was only as tall as the Header itself — position: sticky has nothing to stick against in a parent that short. Fold the container-narrow constraint and outer padding into the Header itself so the sticky
can live as a direct child of whatever tall ancestor the page has (the outer page wrapper on /,
on the others). Then lift
out of every container-narrow wrapper across the affected pages and put the rest of the page content in its own container-narrow with padding-top zero (the Header carries margin-bottom). Also drop the live jetstream feed's MAX_VISIBLE cap from 50 to 20 — at ~2rem per row we were churning through twice as many DOM nodes as we could even show in the 32rem viewport. --- next-env.d.ts | 2 +- src/app/[handle]/[collection]/[rkey]/page.tsx | 97 +++++++++-------- src/app/[handle]/page.tsx | 51 +++++---- src/app/account/layout.tsx | 20 ++-- src/app/explore/layout.tsx | 20 ++-- src/app/extension/page.tsx | 14 +-- src/app/page.tsx | 8 +- src/app/profile/[handle]/post/[rkey]/page.tsx | 101 ++++++++++-------- src/app/universal-links/page.tsx | 14 +-- src/components/Header.tsx | 13 ++- src/components/explore/JetstreamFeed.tsx | 2 +- tsconfig.tsbuildinfo | 2 +- 12 files changed, 192 insertions(+), 152 deletions(-) diff --git a/next-env.d.ts b/next-env.d.ts index 9edff1c..c4b7818 100644 --- a/next-env.d.ts +++ b/next-env.d.ts @@ -1,6 +1,6 @@ /// /// -import "./.next/types/routes.d.ts"; +import "./.next/dev/types/routes.d.ts"; // NOTE: This file should not be edited // see https://nextjs.org/docs/app/api-reference/config/typescript for more information. diff --git a/src/app/[handle]/[collection]/[rkey]/page.tsx b/src/app/[handle]/[collection]/[rkey]/page.tsx index 1cb274c..7f7cfb5 100644 --- a/src/app/[handle]/[collection]/[rkey]/page.tsx +++ b/src/app/[handle]/[collection]/[rkey]/page.tsx @@ -268,23 +268,27 @@ async function RecordContent({ handle, collection, rkey }: { handle: string; col if (parsedData.error) { return ( -
+ <>
-

Error

-

{parsedData.error}

-
+
+

Error

+

{parsedData.error}

+
+ ); } const resolvedDid = await resolveHandle(handle); - + if (!resolvedDid) { return ( -
+ <>
-

Error

-

Could not resolve handle: {handle}

-
+
+

Error

+

Could not resolve handle: {handle}

+
+ ); } @@ -296,11 +300,13 @@ async function RecordContent({ handle, collection, rkey }: { handle: string; col if (parsedData.type === 'unknown') { return ( -
+ <>
-

Error

-

Invalid or unsupported URI

-
+
+

Error

+

Invalid or unsupported URI

+
+ ); } @@ -352,21 +358,21 @@ async function RecordContent({ handle, collection, rkey }: { handle: string; col const postAtUri = post?.uri || ''; return ( -
+ <>
+
+ {/* AT-URI alternate link, mirroring Bluesky's bskyweb template. + React 19 hoists this to . */} + {postAtUri && } - {/* AT-URI alternate link, mirroring Bluesky's bskyweb template. - React 19 hoists this to . */} - {postAtUri && } + {jsonLd && ( +