in todo/js/mutations/ChangeTodoStatusMutation.js [23:73]
export function useChangeTodoStatusMutation(
userRef: ChangeTodoStatusMutation_user$key,
todoRef: ChangeTodoStatusMutation_todo$key,
): (boolean) => void {
const user = useFragment(
graphql`
fragment ChangeTodoStatusMutation_user on User {
id
userId
completedCount
}
`,
userRef,
);
const todo = useFragment(
graphql`
fragment ChangeTodoStatusMutation_todo on Todo {
id
}
`,
todoRef,
);
const [commit] = useMutation(mutation);
return useCallback(
(complete: boolean) => {
const payload = {
id: todo.id,
complete,
};
commit({
variables: {
input: {
userId: user.userId,
...payload,
},
},
optimisticResponse: {
changeTodoStatus: {
todo: payload,
user: {
id: user.id,
completedCount: user.completedCount + (complete ? 1 : -1),
},
},
},
});
},
[user, todo, commit],
);
}