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