in todo/js/mutations/RemoveTodoMutation.js [20:68]
export function useRemoveTodoMutation(
userRef: RemoveTodoMutation_user$key,
todoRef: RemoveTodoMutation_todo$key,
todoConnectionId: string,
): () => void {
const user = useFragment(
graphql`
fragment RemoveTodoMutation_user on User {
id
userId
totalCount
completedCount
}
`,
userRef,
);
const todo = useFragment(
graphql`
fragment RemoveTodoMutation_todo on Todo {
id
complete
}
`,
todoRef,
);
const [commit] = useMutation(mutation);
return useCallback(() => {
commit({
variables: {
input: {
id: todo.id,
userId: user.userId,
},
connections: [todoConnectionId],
},
optimisticResponse: {
removeTodo: {
deletedTodoId: todo.id,
user: {
id: user.id,
totalCount: user.totalCount - 1,
completedCount: user.completedCount + (todo.complete ? -1 : 0),
},
},
},
});
}, [commit, user, todo, todoConnectionId]);
}