We prefer using https://www.npmjs.com/package/use-state-handler, similar functionality to zustand, but for our team it has been easier to modularize, maintaining flexibility.
Here you can define your own setter (using provided setState) for comparison or what you need.