( items: FeedItem[], updatePost: (page: number, index: number, post: Post) => void, mutationFunction: (post: Post) => Partial<Post>, )
| 11 | import { useFeedCardContext } from '../features/posts/FeedCardContext'; |
| 12 | |
| 13 | export function optimisticPostUpdateInFeed( |
| 14 | items: FeedItem[], |
| 15 | updatePost: (page: number, index: number, post: Post) => void, |
| 16 | mutationFunction: (post: Post) => Partial<Post>, |
| 17 | ): ({ index }: { index: number }) => Promise<() => void> { |
| 18 | return async ({ index }) => { |
| 19 | const item = items[index] as PostItem; |
| 20 | const { post } = item; |
| 21 | updatePost(item.page, item.index, { |
| 22 | ...post, |
| 23 | ...mutationFunction(post), |
| 24 | }); |
| 25 | return () => updatePost(item.page, item.index, post); |
| 26 | }; |
| 27 | } |
| 28 | |
| 29 | interface FeedItemLogEvent extends LogEvent { |
| 30 | event_name: string; |
no test coverage detected