diff --git a/app/components/PublicationCard.tsx b/app/components/PublicationCard.tsx index 66c7951..47c2338 100644 --- a/app/components/PublicationCard.tsx +++ b/app/components/PublicationCard.tsx @@ -3,7 +3,7 @@ import { Link } from 'react-router' import { RssIcon } from '@heroicons/react/24/outline' interface Props { - pub: { atUri: string; name: string; url: string; description?: string } + pub: { atUri: string; name: string; url: string; description?: string; authorHandle?: string } action?: React.ReactNode } @@ -28,7 +28,9 @@ export default function PublicationCard({ pub, action }: Props) { ) : ( {pub.name} )} -

{new URL(pub.url).host}

+

+ {new URL(pub.url).host}{pub.authorHandle && ` ยท @${pub.authorHandle}`} +

{pub.description && (

{pub.description}

)} diff --git a/app/lib/api-client.ts b/app/lib/api-client.ts index 8572326..22c544e 100644 --- a/app/lib/api-client.ts +++ b/app/lib/api-client.ts @@ -28,6 +28,7 @@ export type Publication = { url: string name: string description?: string + authorHandle?: string preferences: { showInDiscover: boolean } } @@ -102,6 +103,7 @@ export type SuggestionItem = { pubName: string pubUrl: string pubDescription?: string + authorHandle?: string } export type TimelineItem = { @@ -1386,7 +1388,7 @@ export async function listSuggestions(session: OAuthSession): Promise, + pubs: Array<{ pubAtUri: string; rkey: string; authorDid: string; pubName: string; pubUrl: string; pubDescription?: string; authorHandle?: string }>, ): Promise<{ added: number }> { const pdsUrl = await resolvePdsUrl(session.sub) const token = await getServiceToken(session, pdsUrl) diff --git a/app/routes/suggestions.tsx b/app/routes/suggestions.tsx index 0ae71a0..d6859a1 100644 --- a/app/routes/suggestions.tsx +++ b/app/routes/suggestions.tsx @@ -104,7 +104,7 @@ export default function Suggestions() { const authorDid = pub.atUri.slice('at://'.length).split('/')[0] if (!rkey || authorDid === session.sub) continue if (subscriptions?.some((s) => s.publicationAtUri === pub.atUri)) continue - candidates.push({ pubAtUri: pub.atUri, rkey, authorDid, pubName: pub.name, pubUrl: pub.url, pubDescription: pub.description }) + candidates.push({ pubAtUri: pub.atUri, rkey, authorDid, pubName: pub.name, pubUrl: pub.url, pubDescription: pub.description, authorHandle: pub.authorHandle }) } } } @@ -233,7 +233,7 @@ export default function Suggestions() { return (