+52
-2
lib/components/BlueskyPostList.tsx
+52
-2
lib/components/BlueskyPostList.tsx
···+import { usePaginatedRecords, type AuthorFeedReason, type ReplyParentInfo } from '../hooks/usePaginatedRecords';······+const ListRow: React.FC<ListRowProps> = ({ record, rkey, did, reason, replyParent, palette, hasDivider }) => {const absolute = record.createdAt ? new Date(record.createdAt).toLocaleString() : undefined;+const parentDid = replyParent?.author?.did ?? (parentUri ? parseAtUri(parentUri)?.did : undefined);<a href={href} target="_blank" rel="noopener noreferrer" style={{ ...listStyles.row, ...palette.row, borderBottom: hasDivider ? `1px solid ${palette.divider}` : 'none' }}>+{repostLabel && <span style={{ ...listStyles.rowMeta, ...palette.rowMeta }}>{repostLabel}</span>}+{replyLabel && <span style={{ ...listStyles.rowMeta, ...palette.rowMeta }}>{replyLabel}</span>}···············+function formatReplyTarget(parentUri?: string, feedParent?: ReplyParentInfo, resolvedHandle?: string) {
+48
-7
lib/hooks/usePaginatedRecords.ts
+48
-7
lib/hooks/usePaginatedRecords.ts
······* React hook that fetches a repository collection with cursor-based pagination and prefetching.···const { did, handle, error: didError, loading: resolvingDid } = useDidResolution(handleOrDid);···const { rpc } = await createAtprotoClient({ service: authorFeedService ?? DEFAULT_APPVIEW_SERVICE });-) => Promise<{ ok: boolean; data: { feed?: Array<{ post?: { uri?: string; record?: T } }>; cursor?: string } }>;···