diff options
author | Paul Frazee <pfrazee@gmail.com> | 2023-11-29 17:25:36 -0800 |
---|---|---|
committer | Paul Frazee <pfrazee@gmail.com> | 2023-11-29 17:25:36 -0800 |
commit | dc53ef1ec17d4c89ace36ed64d1217caaa54cdb9 (patch) | |
tree | c4b9248859af7f96a5bec8a03f0e13ed58b3fcc9 /src | |
parent | 630637874db9bf188214657b576cbf2965a77278 (diff) | |
parent | 6e30c339da8ece8b20b58280aae0b45289fb6956 (diff) | |
download | voidsky-dc53ef1ec17d4c89ace36ed64d1217caaa54cdb9.tar.zst |
Merge branch 'CooperEdmunds-2011-default-pin-feed-on-add' into main
Diffstat (limited to 'src')
-rw-r--r-- | src/view/com/feeds/FeedSourceCard.tsx | 17 | ||||
-rw-r--r-- | src/view/screens/Feeds.tsx | 1 |
2 files changed, 15 insertions, 3 deletions
diff --git a/src/view/com/feeds/FeedSourceCard.tsx b/src/view/com/feeds/FeedSourceCard.tsx index 9acbf3611..1f2af069b 100644 --- a/src/view/com/feeds/FeedSourceCard.tsx +++ b/src/view/com/feeds/FeedSourceCard.tsx @@ -17,6 +17,7 @@ import {useModalControls} from '#/state/modals' import {msg} from '@lingui/macro' import {useLingui} from '@lingui/react' import { + usePinFeedMutation, UsePreferencesQueryResponse, usePreferencesQuery, useSaveFeedMutation, @@ -32,6 +33,7 @@ export function FeedSourceCard({ showDescription = false, showLikes = false, LoadingComponent, + pinOnSave = false, }: { feedUri: string style?: StyleProp<ViewStyle> @@ -39,6 +41,7 @@ export function FeedSourceCard({ showDescription?: boolean showLikes?: boolean LoadingComponent?: JSX.Element + pinOnSave?: boolean }) { const {data: preferences} = usePreferencesQuery() const {data: feed} = useFeedSourceInfoQuery({uri: feedUri}) @@ -59,6 +62,7 @@ export function FeedSourceCard({ showSaveBtn={showSaveBtn} showDescription={showDescription} showLikes={showLikes} + pinOnSave={pinOnSave} /> ) } @@ -70,6 +74,7 @@ export function FeedSourceCardLoaded({ showSaveBtn = false, showDescription = false, showLikes = false, + pinOnSave = false, }: { feed: FeedSourceInfo preferences: UsePreferencesQueryResponse @@ -77,6 +82,7 @@ export function FeedSourceCardLoaded({ showSaveBtn?: boolean showDescription?: boolean showLikes?: boolean + pinOnSave?: boolean }) { const pal = usePalette('default') const {_} = useLingui() @@ -87,6 +93,7 @@ export function FeedSourceCardLoaded({ useSaveFeedMutation() const {isPending: isRemovePending, mutateAsync: removeFeed} = useRemoveFeedMutation() + const {isPending: isPinPending, mutateAsync: pinFeed} = usePinFeedMutation() const isSaved = Boolean(preferences?.feeds?.saved?.includes(feed.uri)) @@ -112,14 +119,18 @@ export function FeedSourceCardLoaded({ }) } else { try { - await saveFeed({uri: feed.uri}) + if (pinOnSave) { + await pinFeed({uri: feed.uri}) + } else { + await saveFeed({uri: feed.uri}) + } Toast.show('Added to my feeds') } catch (e) { Toast.show('There was an issue contacting your server') logger.error('Failed to save feed', {error: e}) } } - }, [isSaved, openModal, feed, removeFeed, saveFeed, _]) + }, [isSaved, openModal, feed, removeFeed, saveFeed, _, pinOnSave, pinFeed]) if (!feed || !preferences) return null @@ -159,7 +170,7 @@ export function FeedSourceCardLoaded({ {showSaveBtn && feed.type === 'feed' && ( <View> <Pressable - disabled={isSavePending || isRemovePending} + disabled={isSavePending || isPinPending || isRemovePending} accessibilityRole="button" accessibilityLabel={ isSaved ? 'Remove from my feeds' : 'Add to my feeds' diff --git a/src/view/screens/Feeds.tsx b/src/view/screens/Feeds.tsx index ced8592c5..f319fbc39 100644 --- a/src/view/screens/Feeds.tsx +++ b/src/view/screens/Feeds.tsx @@ -437,6 +437,7 @@ export function FeedsScreen(_props: Props) { showSaveBtn={hasSession} showDescription showLikes + pinOnSave /> ) } else if (item.type === 'popularFeedsNoResults') { |