Since the state.status will always change when the mutate function fires, the memoisation of useCallback fails and can cause runaway effects if the mutate function is passed in the dependency array of a useEffect.
if (![statusIdle, statusSuccess, statusError].includes(state.status)) {
return
}