From f2bc06c79e3326ae5e01b4adb17853e02d62c9fb Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Tue, 25 Jun 2024 18:15:23 -0500 Subject: [PATCH] Remove list dual usage from most of FeedCard --- src/components/FeedCard.tsx | 79 +++++++++---------------------------- 1 file changed, 19 insertions(+), 60 deletions(-) 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}` }