tooot/src/utils/queryHooks/timeline/deleteItem.ts

29 lines
777 B
TypeScript

import { InfiniteData } from '@tanstack/react-query'
import { queryClient } from '@utils/queryHooks'
import { MutationVarsTimelineDeleteItem, QueryKeyTimeline, TimelineData } from '../timeline'
const deleteItem = (
{ id }: MutationVarsTimelineDeleteItem,
navigationState: (QueryKeyTimeline | undefined)[]
) => {
for (const key of navigationState) {
if (!key) continue
queryClient.setQueryData<InfiniteData<TimelineData> | undefined>(key, old => {
if (!old) return old
return {
...old,
pages: old.pages.map(page => ({
...page,
body: (page.body as Mastodon.Status[]).filter(
status => status.id !== id && status.reblog?.id !== id
)
}))
}
})
}
}
export default deleteItem