Default State Reducer

👨‍💼 It's a pretty simple, yet powerful solution. Inversion of control with good defaults allows our component users to have a lot more power and will reduce the amount of feature requests you get for these components by a lot, I promise.
🦉 An important thing to note is that once you do this your internal state becomes a part of your public API. So if you change the name of an internal state variable, then that will be a breaking change for your users. So be careful with this.
🕷 With great power comes great responsibility.