Using `useReducer` instead of `useState`

An excellent write up by Builder.io explaining how to avoid the useState hell and use a much preferable and cleaner way using useReducer. Useful especially with forms.