1
0
mirror of https://github.com/tooot-app/app synced 2025-06-05 22:19:13 +02:00
Files
tooot/src/utils/queryHooks/timeline/deleteItem.ts
2023-01-06 01:01:10 +01:00

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