diff --git a/src/components/FeedCard.tsx b/src/components/FeedCard.tsx
index e0fc7ef54b..3f507726c1 100644
--- a/src/components/FeedCard.tsx
+++ b/src/components/FeedCard.tsx
@@ -3,7 +3,6 @@ import {GestureResponderEvent, View} from 'react-native'
import {
AppBskyActorDefs,
AppBskyFeedDefs,
- AppBskyGraphDefs,
AtUri,
RichText as RichTextApi,
} from '@atproto/api'
@@ -18,7 +17,7 @@ import {
useRemoveFeedMutation,
} from '#/state/queries/preferences'
import {sanitizeHandle} from 'lib/strings/handles'
-import {precacheFeedFromGeneratorView, precacheList} from 'state/queries/feed'
+import {precacheFeedFromGeneratorView} from 'state/queries/feed'
import {useSession} from 'state/session'
import {UserAvatar} from '#/view/com/util/UserAvatar'
import * as Toast from 'view/com/util/Toast'
@@ -33,45 +32,31 @@ import * as Prompt from '#/components/Prompt'
import {RichText} from '#/components/RichText'
import {Text} from '#/components/Typography'
-type Props =
- | {
- type: 'feed'
- view: AppBskyFeedDefs.GeneratorView
- }
- | {
- type: 'list'
- view: AppBskyGraphDefs.ListView
- }
+type Props = {
+ view: AppBskyFeedDefs.GeneratorView
+}
export function Default(props: Props) {
- const {type, view} = props
- const displayName = type === 'feed' ? view.displayName : view.name
- const purpose = type === 'list' ? view.purpose : undefined
+ const {view} = props
return (
-
+
- {type === 'feed' && }
+
)
}
export function Link({
- type,
view,
- label,
children,
+ ...props
}: Props & Omit) {
const queryClient = useQueryClient()
@@ -79,17 +64,12 @@ export function Link({
return createProfileFeedHref({feed: view})
}, [view])
+ React.useEffect(() => {
+ precacheFeedFromGeneratorView(queryClient, view)
+ }, [view, queryClient])
+
return (
- {
- if (type === 'feed') {
- precacheFeedFromGeneratorView(queryClient, view)
- } else {
- precacheList(queryClient, view)
- }
- }}>
+
{children}
)
@@ -132,13 +112,9 @@ export function AvatarPlaceholder({size = 40}: Omit) {
export function TitleAndByline({
title,
creator,
- type,
- purpose,
}: {
title: string
creator?: AppBskyActorDefs.ProfileViewBasic
- type: 'feed' | 'list'
- purpose?: AppBskyGraphDefs.ListView['purpose']
}) {
const t = useTheme()
@@ -151,15 +127,7 @@ export function TitleAndByline({
- {type === 'list' && purpose === 'app.bsky.graph.defs#curatelist' ? (
- List by {sanitizeHandle(creator.handle, '@')}
- ) : type === 'list' && purpose === 'app.bsky.graph.defs#modlist' ? (
-
- Moderation list by {sanitizeHandle(creator.handle, '@')}
-
- ) : (
- Feed by {sanitizeHandle(creator.handle, '@')}
- )}
+ Feed by {sanitizeHandle(creator.handle, '@')}
)}
@@ -225,19 +193,13 @@ export function Action({
uri,
pin,
type,
- purpose,
}: {
uri: string
pin?: boolean
type: 'feed' | 'list'
- purpose?: AppBskyGraphDefs.ListView['purpose']
}) {
const {hasSession} = useSession()
- if (
- !hasSession ||
- (type === 'list' && purpose !== 'app.bsky.graph.defs#curatelist')
- )
- return null
+ if (!hasSession) return null
return
}
@@ -332,12 +294,9 @@ function ActionInner({
export function createProfileFeedHref({
feed,
}: {
- feed: AppBskyFeedDefs.GeneratorView | AppBskyGraphDefs.ListView
+ feed: AppBskyFeedDefs.GeneratorView
}) {
const urip = new AtUri(feed.uri)
- const type = urip.collection === 'app.bsky.feed.generator' ? 'feed' : 'list'
const handleOrDid = feed.creator.handle || feed.creator.did
- return `/profile/${handleOrDid}/${type === 'feed' ? 'feed' : 'lists'}/${
- urip.rkey
- }`
+ return `/profile/${handleOrDid}/feed/${urip.rkey}`
}