A custom provider component can own state, derive a value, and keep the provider API focused for the rest of the app.