Integrate new SDK methods

This commit is contained in:
Eric Bailey
2024-03-06 15:41:12 -06:00
parent d5b0a33ae3
commit 8e22666168
4 changed files with 22 additions and 24 deletions
+9 -10
View File
@@ -17,7 +17,7 @@ import {makeSearchLink} from '#/lib/routes/links'
import {NavigationProp} from '#/lib/routes/types'
import {
usePreferencesQuery,
useUpsertMutedWordsMutation,
useAddMutedWordMutation,
useRemoveMutedWordMutation,
} from '#/state/queries/preferences'
import {Loader} from '#/components/Loader'
@@ -47,10 +47,10 @@ export function TagMenu({
const {isLoading: isPreferencesLoading, data: preferences} =
usePreferencesQuery()
const {
mutateAsync: upsertMutedWord,
variables: optimisticUpsert,
reset: resetUpsert,
} = useUpsertMutedWordsMutation()
mutateAsync: addMutedWord,
variables: optimisticAdd,
reset: resetAdd,
} = useAddMutedWordMutation()
const {
mutateAsync: removeMutedWord,
variables: optimisticRemove,
@@ -62,9 +62,8 @@ export function TagMenu({
(preferences?.mutedWords?.find(
m => m.value === tag && m.targets.includes('tag'),
) ??
optimisticUpsert?.find(
m => m.value === tag && m.targets.includes('tag'),
)) &&
(optimisticAdd?.value === tag &&
optimisticAdd.targets.includes('tag'))) &&
!(optimisticRemove?.value === tag),
)
@@ -211,14 +210,14 @@ export function TagMenu({
onPress={() => {
control.close(() => {
if (isMuted) {
resetUpsert()
resetAdd()
removeMutedWord({
value: tag,
targets: ['tag'],
})
} else {
resetRemove()
upsertMutedWord([{value: tag, targets: ['tag']}])
addMutedWord({value: tag, targets: ['tag']})
}
})
}}>
+7 -8
View File
@@ -9,7 +9,7 @@ import {NativeDropdown} from '#/view/com/util/forms/NativeDropdown'
import {NavigationProp} from '#/lib/routes/types'
import {
usePreferencesQuery,
useUpsertMutedWordsMutation,
useAddMutedWordMutation,
useRemoveMutedWordMutation,
} from '#/state/queries/preferences'
import {enforceLen} from '#/lib/strings/helpers'
@@ -45,17 +45,16 @@ export function TagMenu({
const {_} = useLingui()
const navigation = useNavigation<NavigationProp>()
const {data: preferences} = usePreferencesQuery()
const {mutateAsync: upsertMutedWord, variables: optimisticUpsert} =
useUpsertMutedWordsMutation()
const {mutateAsync: addMutedWord, variables: optimisticAdd} =
useAddMutedWordMutation()
const {mutateAsync: removeMutedWord, variables: optimisticRemove} =
useRemoveMutedWordMutation()
const isMuted = Boolean(
(preferences?.mutedWords?.find(
m => m.value === tag && m.targets.includes('tag'),
) ??
optimisticUpsert?.find(
m => m.value === tag && m.targets.includes('tag'),
)) &&
(optimisticAdd?.value === tag &&
optimisticAdd.targets.includes('tag'))) &&
!(optimisticRemove?.value === tag),
)
const truncatedTag = '#' + enforceLen(tag, 15, true, 'middle')
@@ -107,7 +106,7 @@ export function TagMenu({
if (isMuted) {
removeMutedWord({value: tag, targets: ['tag']})
} else {
upsertMutedWord([{value: tag, targets: ['tag']}])
addMutedWord({value: tag, targets: ['tag']})
}
},
testID: 'tagMenuMute',
@@ -128,7 +127,7 @@ export function TagMenu({
preferences,
tag,
truncatedTag,
upsertMutedWord,
addMutedWord,
removeMutedWord,
])
+3 -3
View File
@@ -6,7 +6,7 @@ import {AppBskyActorDefs, sanitizeMutedWordValue} from '@atproto/api'
import {
usePreferencesQuery,
useUpsertMutedWordsMutation,
useAddMutedWordMutation,
useRemoveMutedWordMutation,
} from '#/state/queries/preferences'
import {isNative} from '#/platform/detection'
@@ -52,7 +52,7 @@ function MutedWordsInner({}: {control: Dialog.DialogOuterProps['control']}) {
data: preferences,
error: preferencesError,
} = usePreferencesQuery()
const {isPending, mutateAsync: addMutedWord} = useUpsertMutedWordsMutation()
const {isPending, mutateAsync: addMutedWord} = useAddMutedWordMutation()
const [field, setField] = React.useState('')
const [options, setOptions] = React.useState(['content'])
const [error, setError] = React.useState('')
@@ -71,7 +71,7 @@ function MutedWordsInner({}: {control: Dialog.DialogOuterProps['control']}) {
try {
// send raw value and rely on SDK as sanitization source of truth
await addMutedWord([{value: field, targets}])
await addMutedWord({value: field, targets})
setField('')
} catch (e: any) {
logger.error(`Failed to save muted word`, {message: e.message})
+3 -3
View File
@@ -284,12 +284,12 @@ export function useUnpinFeedMutation() {
})
}
export function useUpsertMutedWordsMutation() {
export function useAddMutedWordMutation() {
const queryClient = useQueryClient()
return useMutation({
mutationFn: async (mutedWords: AppBskyActorDefs.MutedWord[]) => {
await getAgent().upsertMutedWords(mutedWords)
mutationFn: async (mutedWord: AppBskyActorDefs.MutedWord) => {
await getAgent().addMutedWord(mutedWord)
// triggers a refetch
await queryClient.invalidateQueries({
queryKey: preferencesQueryKey,