Improve Function Name and Multiline Object Formatting #27
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.
Two little improvements in this PR:
Function Name Formatting: prefer
displayName
if setI'm trying to use jsx-to-string with some JSX code that involves passing a React component function as a prop to a React component instance, along with options
{ useFunctionCode: true, functionNameOnly: true }
.Our use case is a little more complicated than that, insofar as
B
is a React component that is generated by a Higher-Order Component. Long story short, printing the function'sdisplayName
property offers greater clarity than printing itsname
, which for this HOC, is generic.Before
Note the ambiguous
Themed
prop name above. That's thename
property of an HOC we're using.After
Turns out that function has a
displayName
, based on the wrapped component'sdisplayName
. Hence, we can print that instead to offer a bit more clarity.Object Formatting: add indents to multi-line formatted object strings
Depending on its content, an object might be stringified as a multi-line string. I noticed this and added a bit of code to conditionally add indentation to all but the first line of the multi-string value in this case.
Before
The
breakpoints
prop is a multi-line object, but it doesn't have the correct indentation below.After
Now the multi-line object is correctly indented.