in todo/js/mutations/MarkAllTodosMutation.js [23:74]
export function useMarkAllTodosMutation(
userRef: MarkAllTodosMutation_user$key,
todoEdgeRef: MarkAllTodosMutation_todoEdge$key,
): (boolean) => void {
const user = useFragment(
graphql`
fragment MarkAllTodosMutation_user on User {
id
userId
totalCount
}
`,
userRef,
);
const todos = useFragment(
graphql`
fragment MarkAllTodosMutation_todoEdge on TodoEdge @relay(plural: true) {
node {
id
}
}
`,
todoEdgeRef,
);
const [commit] = useMutation(mutation);
return useCallback(
(complete: boolean) => {
commit({
variables: {
input: {
userId: user.userId,
complete,
},
},
optimisticResponse: {
markAllTodos: {
changedTodos: todos.map(({node: {id}}) => ({
id,
complete,
})),
user: {
id: user.id,
completedCount: complete ? user.totalCount : 0,
},
},
},
});
},
[commit, user, todos],
);
}