From 4021303bc291bea55e78dc400dc58eafd65e5733 Mon Sep 17 00:00:00 2001 From: Eric Bailey Date: Mon, 22 Apr 2024 18:54:15 -0500 Subject: [PATCH] Handle following feed on Feeds screen --- src/view/screens/Feeds.tsx | 81 +++++++++++++++++++++++++++++++------- 1 file changed, 67 insertions(+), 14 deletions(-) diff --git a/src/view/screens/Feeds.tsx b/src/view/screens/Feeds.tsx index 320876a4dd..820753f17f 100644 --- a/src/view/screens/Feeds.tsx +++ b/src/view/screens/Feeds.tsx @@ -6,6 +6,7 @@ import { StyleSheet, View, } from 'react-native' +import {AppBskyActorDefs} from '@atproto/api' import {FontAwesomeIcon} from '@fortawesome/react-native-fontawesome' import {FontAwesomeIconStyle} from '@fortawesome/react-native-fontawesome' import {msg, Trans} from '@lingui/macro' @@ -46,6 +47,7 @@ import {UserAvatar} from 'view/com/util/UserAvatar' import {ViewHeader} from 'view/com/util/ViewHeader' import {atoms as a, useTheme} from '#/alf' import {IconCircle} from '#/components/IconCircle' +import {FilterTimeline_Stroke2_Corner0_Rounded as FilterTimeline} from '#/components/icons/FilterTimeline' import {ListMagnifyingGlass_Stroke2_Corner0_Rounded} from '#/components/icons/ListMagnifyingGlass' import {ListSparkle_Stroke2_Corner0_Rounded} from '#/components/icons/ListSparkle' @@ -74,6 +76,7 @@ type FlatlistSlice = type: 'savedFeed' key: string feedUri: string + savedFeedConfig: AppBskyActorDefs.SavedFeed } | { type: 'savedFeedsLoadMore' @@ -246,6 +249,7 @@ export function FeedsScreen(_props: Props) { key: `savedFeed:${feed.value}`, type: 'savedFeed', feedUri: feed.value, + savedFeedConfig: feed, })), ) slices = slices.concat( @@ -257,6 +261,7 @@ export function FeedsScreen(_props: Props) { key: `savedFeed:${feed.value}`, type: 'savedFeed', feedUri: feed.value, + savedFeedConfig: feed, })), ) } @@ -487,7 +492,7 @@ export function FeedsScreen(_props: Props) { ) } else if (item.type === 'savedFeed') { - return + return } else if (item.type === 'popularFeedsHeader') { return ( <> @@ -593,22 +598,75 @@ export function FeedsScreen(_props: Props) { ) } -function SavedFeed({ - feedUri, - isPrimaryAlgo, +function FeedOrFollowing({ + savedFeedConfig: feed, }: { - feedUri: string - isPrimaryAlgo?: boolean + savedFeedConfig: AppBskyActorDefs.SavedFeed +}) { + return feed.type === 'timeline' ? ( + + ) : ( + + ) +} + +function FollowingFeed() { + const pal = usePalette('default') + const t = useTheme() + const {isMobile} = useWebMediaQueries() + return ( + + + + + + + Following + + + + ) +} + +function SavedFeed({ + savedFeedConfig: feed, +}: { + savedFeedConfig: AppBskyActorDefs.SavedFeed }) { const pal = usePalette('default') const {isMobile} = useWebMediaQueries() - const {data: info, error} = useFeedSourceInfoQuery({uri: feedUri}) - const typeAvatar = getAvatarTypeFromUri(feedUri) + const {data: info, error} = useFeedSourceInfoQuery({uri: feed.value}) + const typeAvatar = getAvatarTypeFromUri(feed.value) if (!info) return ( ) @@ -647,11 +705,6 @@ function SavedFeed({ ) : null} - {isPrimaryAlgo && ( - - Primary Algorithm - - )} {isMobile && (