Add displayName property to context object for easier debugging with React Devtools #30
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary & motivation
Simple change to make debugging with React DevTools a little bit easier by having a non-generic displayName.
In the devtools window the context component currently shows up as
<Context.Provdier>
this change would make it show up as<Stripe.Provider>
With the generic name it can be a little annoying debugging if you have multiple providers all with the same generic displayName.before
after
If you're unfamiliar with the context displayName documentation is here: https://reactjs.org/docs/context.html#contextdisplayname
My real motivation for this is an issue with a project that has multiple generic named "Provider" components and I was tracking the following a warning down:
After a little bit of digging realized it was related to
react-stripe-elements
as it has a context provider just named<Provider>
So I just want to make this new iteration of stripe elements a little bit easier to debug.Testing & documentation
Use React DevTools to confirm that the correct displayName is present.
Note for maintainers I chose a generic displayName "Stripe" but will leave it up to you if you want a more descriptive name like StripeContext or StripeElementContext