From 44725b46d8eed7022c87ec2e53b25344e9aaab57 Mon Sep 17 00:00:00 2001 From: Jared Pereira Date: Wed, 15 Oct 2025 11:32:30 -0400 Subject: [PATCH] make subscriptions infinite scrolling as well --- app/discover/PubListing.tsx | 17 ++--- app/reader/ReaderContent.tsx | 2 +- app/reader/SubscriptionsContent.tsx | 88 +++++++++++++++++++--- app/reader/getSubscriptions.ts | 66 ++++++++++++++++ app/reader/idResolver.ts | 78 +++++++++++++++++++ app/reader/page.tsx | 23 ++---- components/PageLayouts/DashboardLayout.tsx | 5 ++ src/hooks/usePreserveScroll.ts | 22 ++++++ 8 files changed, 265 insertions(+), 36 deletions(-) create mode 100644 app/reader/getSubscriptions.ts create mode 100644 app/reader/idResolver.ts create mode 100644 src/hooks/usePreserveScroll.ts diff --git a/app/discover/PubListing.tsx b/app/discover/PubListing.tsx index 78699686..582dc331 100644 --- a/app/discover/PubListing.tsx +++ b/app/discover/PubListing.tsx @@ -1,5 +1,6 @@ "use client"; import { AtUri } from "@atproto/syntax"; +import { PublicationSubscription } from "app/reader/getSubscriptions"; import { PubIcon } from "components/ActionBar/Publications"; import { Separator } from "components/Layout"; import { usePubTheme } from "components/ThemeManager/PublicationThemeProvider"; @@ -9,14 +10,11 @@ import { blobRefToSrc } from "src/utils/blobRefToSrc"; import { timeAgo } from "src/utils/timeAgo"; import { Json } from "supabase/database.types"; -export const PubListing = (props: { - resizeHeight?: boolean; - record: Json; - uri: string; - documents_in_publications: { - documents: { data: Json; indexed_at: string } | null; - }[]; -}) => { +export const PubListing = ( + props: PublicationSubscription & { + resizeHeight?: boolean; + }, +) => { let record = props.record as PubLeafletPublication.Record; let theme = usePubTheme(record); let backgroundImage = record?.theme?.backgroundImage?.image?.ref @@ -59,8 +57,7 @@ export const PubListing = (props: { )}
-
-

Name Here

{" "} + {props.authorProfile?.handle}

Updated{" "} diff --git a/app/reader/ReaderContent.tsx b/app/reader/ReaderContent.tsx index e3e11df1..4f68ab41 100644 --- a/app/reader/ReaderContent.tsx +++ b/app/reader/ReaderContent.tsx @@ -83,7 +83,7 @@ export const ReaderContent = (props: { {/* Trigger element for loading more posts */}