diff options
Diffstat (limited to 'src/view/screens/Feeds.tsx')
-rw-r--r-- | src/view/screens/Feeds.tsx | 52 |
1 files changed, 32 insertions, 20 deletions
diff --git a/src/view/screens/Feeds.tsx b/src/view/screens/Feeds.tsx index 2e5b48513..82de30d5c 100644 --- a/src/view/screens/Feeds.tsx +++ b/src/view/screens/Feeds.tsx @@ -41,6 +41,7 @@ import hairlineWidth = StyleSheet.hairlineWidth import {Divider} from '#/components/Divider' import * as FeedCard from '#/components/FeedCard' import {ChevronRight_Stroke2_Corner0_Rounded as ChevronRight} from '#/components/icons/Chevron' +import * as ListCard from '#/components/ListCard' type Props = NativeStackScreenProps<CommonNavigatorParams, 'Feeds'> @@ -495,7 +496,7 @@ export function FeedsScreen(_props: Props) { } else if (item.type === 'popularFeed') { return ( <View style={[a.px_lg, a.pt_lg, a.gap_lg]}> - <FeedCard.Default type="feed" view={item.feed} /> + <FeedCard.Default view={item.feed} /> <Divider /> </View> ) @@ -627,7 +628,7 @@ function FollowingFeed() { fill={t.palette.white} /> </View> - <FeedCard.TitleAndByline title={_(msg`Following`)} type="feed" /> + <FeedCard.TitleAndByline title={_(msg`Following`)} /> </FeedCard.Header> </View> ) @@ -639,34 +640,45 @@ function SavedFeed({ savedFeed: SavedFeedItem & {type: 'feed' | 'list'} }) { const t = useTheme() - const {view: feed} = savedFeed - const displayName = - savedFeed.type === 'feed' ? savedFeed.view.displayName : savedFeed.view.name - return ( - <FeedCard.Link testID={`saved-feed-${feed.displayName}`} {...savedFeed}> + const commonStyle = [ + a.flex_1, + a.px_lg, + a.py_md, + a.border_b, + t.atoms.border_contrast_low, + ] + + return savedFeed.type === 'feed' ? ( + <FeedCard.Link + testID={`saved-feed-${savedFeed.view.displayName}`} + {...savedFeed}> {({hovered, pressed}) => ( <View - style={[ - a.flex_1, - a.px_lg, - a.py_md, - a.border_b, - t.atoms.border_contrast_low, - (hovered || pressed) && t.atoms.bg_contrast_25, - ]}> + style={[commonStyle, (hovered || pressed) && t.atoms.bg_contrast_25]}> <FeedCard.Header> - <FeedCard.Avatar src={feed.avatar} size={28} /> - <FeedCard.TitleAndByline - title={displayName} - type={savedFeed.type} - /> + <FeedCard.Avatar src={savedFeed.view.avatar} size={28} /> + <FeedCard.TitleAndByline title={savedFeed.view.displayName} /> <ChevronRight size="sm" fill={t.atoms.text_contrast_low.color} /> </FeedCard.Header> </View> )} </FeedCard.Link> + ) : ( + <ListCard.Link testID={`saved-feed-${savedFeed.view.name}`} {...savedFeed}> + {({hovered, pressed}) => ( + <View + style={[commonStyle, (hovered || pressed) && t.atoms.bg_contrast_25]}> + <ListCard.Header> + <ListCard.Avatar src={savedFeed.view.avatar} size={28} /> + <ListCard.TitleAndByline title={savedFeed.view.name} /> + + <ChevronRight size="sm" fill={t.atoms.text_contrast_low.color} /> + </ListCard.Header> + </View> + )} + </ListCard.Link> ) } |