Finalize mutation hooks

This commit is contained in:
Eric Bailey
2024-04-22 18:22:26 -05:00
parent 24543a2c4b
commit 0bb0f541cc
2 changed files with 15 additions and 54 deletions
+1
View File
@@ -110,6 +110,7 @@ export type TrackPropertiesMap = {
index: number
}
'CustomFeed:LoadMore': {}
'CustomFeed:Update': {}
'MultiFeed:onEndReached': {}
'MultiFeed:onRefresh': {}
// MODERATION events
+14 -54
View File
@@ -229,13 +229,9 @@ export function useSetThreadViewPreferencesMutation() {
export function useSetSaveFeedsMutation() {
const queryClient = useQueryClient()
return useMutation<
void,
unknown,
Pick<UsePreferencesQueryResponse['feeds'], 'saved' | 'pinned'>
>({
mutationFn: async ({saved, pinned}) => {
await getAgent().setSavedFeeds(saved, pinned)
return useMutation<void, unknown, AppBskyActorDefs.SavedFeed[]>({
mutationFn: async savedFeeds => {
await getAgent().setSavedFeedsV2(savedFeeds)
// triggers a refetch
await queryClient.invalidateQueries({
queryKey: preferencesQueryKey,
@@ -244,16 +240,16 @@ export function useSetSaveFeedsMutation() {
})
}
export function useSaveFeedMutation() {
export function useAddSavedFeedMutation() {
const queryClient = useQueryClient()
return useMutation<void, unknown, {uri: string}>({
mutationFn: async ({uri}) => {
await getAgent().addSavedFeedV2({
type: 'feed',
value: uri,
pinned: false,
})
return useMutation<
void,
unknown,
Pick<AppBskyActorDefs.SavedFeed, 'type' | 'value' | 'pinned'>
>({
mutationFn: async savedFeed => {
await getAgent().addSavedFeedV2(savedFeed)
track('CustomFeed:Save')
// triggers a refetch
await queryClient.invalidateQueries({
@@ -278,35 +274,13 @@ export function useRemoveFeedMutation() {
})
}
export function usePinFeedMutation() {
const queryClient = useQueryClient()
return useMutation<void, unknown, {uri: string}>({
mutationFn: async ({uri}) => {
await getAgent().addSavedFeedV2({
type: 'feed',
value: uri,
pinned: true,
})
track('CustomFeed:Pin', {uri})
// triggers a refetch
await queryClient.invalidateQueries({
queryKey: preferencesQueryKey,
})
},
})
}
export function useUnpinFeedMutation() {
export function useUpdateSavedFeedMutation() {
const queryClient = useQueryClient()
return useMutation<void, unknown, AppBskyActorDefs.SavedFeed>({
mutationFn: async feed => {
await getAgent().updateSavedFeed({
...feed,
pinned: false,
})
track('CustomFeed:Unpin', {uri: feed.value})
await getAgent().updateSavedFeed(feed)
track('CustomFeed:Update', {uri: feed.value})
// triggers a refetch
await queryClient.invalidateQueries({
queryKey: preferencesQueryKey,
@@ -356,17 +330,3 @@ export function useRemoveMutedWordMutation() {
},
})
}
export function useSetPrimaryAlgorithmMutation() {
const queryClient = useQueryClient()
return useMutation({
mutationFn: async (pref: AppBskyActorDefs.PrimaryAlgoPref) => {
await getAgent().setPrimaryAlgorithm(pref)
// triggers a refetch
await queryClient.invalidateQueries({
queryKey: preferencesQueryKey,
})
},
})
}