Finish migrating ProfileFeed, FeedSourceCard

This commit is contained in:
Eric Bailey
2024-04-22 18:09:06 -05:00
parent dfbc6c32d7
commit fe9ad6b820
2 changed files with 89 additions and 190 deletions
+10 -12
View File
@@ -8,11 +8,10 @@ import {useLingui} from '@lingui/react'
import {logger} from '#/logger'
import {FeedSourceInfo, useFeedSourceInfoQuery} from '#/state/queries/feed'
import {
usePinFeedMutation,
useAddSavedFeedMutation,
usePreferencesQuery,
UsePreferencesQueryResponse,
useRemoveFeedMutation,
useSaveFeedMutation,
} from '#/state/queries/preferences'
import {useNavigationDeduped} from 'lib/hooks/useNavigationDeduped'
import {usePalette} from 'lib/hooks/usePalette'
@@ -90,11 +89,10 @@ export function FeedSourceCardLoaded({
const removePromptControl = Prompt.usePromptControl()
const navigation = useNavigationDeduped()
const {isPending: isSavePending, mutateAsync: saveFeed} =
useSaveFeedMutation()
const {isPending: isAddSavedFeedPending, mutateAsync: addSavedFeed} =
useAddSavedFeedMutation()
const {isPending: isRemovePending, mutateAsync: removeFeed} =
useRemoveFeedMutation()
const {isPending: isPinPending, mutateAsync: pinFeed} = usePinFeedMutation()
const savedFeedConfig = preferences?.savedFeeds?.find(
f => f.value === feed?.uri,
@@ -105,17 +103,17 @@ export function FeedSourceCardLoaded({
if (!feed) return
try {
if (pinOnSave) {
await pinFeed({uri: feed.uri})
} else {
await saveFeed({uri: feed.uri})
}
await addSavedFeed({
type: 'feed',
value: feed.uri,
pinned: pinOnSave,
})
Toast.show(_(msg`Added to my feeds`))
} catch (e) {
Toast.show(_(msg`There was an issue contacting your server`))
logger.error('Failed to save feed', {message: e})
}
}, [_, feed, pinFeed, pinOnSave, saveFeed])
}, [_, feed, pinOnSave, addSavedFeed])
const onUnsave = React.useCallback(async () => {
if (!savedFeedConfig) return
@@ -231,7 +229,7 @@ export function FeedSourceCardLoaded({
<View style={[s.justifyCenter]}>
<Pressable
testID={`feed-${feed.displayName}-toggleSave`}
disabled={isSavePending || isPinPending || isRemovePending}
disabled={isAddSavedFeedPending || isRemovePending}
accessibilityRole="button"
accessibilityLabel={
isSaved