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.
Hi, i've made bug-fix for the
jss-plugin-extend
.On the scenario like this:
See the sandbox
the
btnChild
extendbtnParent
as an object, andbtnParent
extendbtnGrand
as an array.The plugin fails to create correct css, because on the original file
/packages/jss-plugin-extend/src/index.js
, line 42:It assumes that the grandpa's type is a literal object, but actually its type might be string, literal object, string array, literal object array, or mixed type array.
Because I need the JSS to work correctly (I'm developing a css framework based on your JSS lib),
so I created my own plugin-extend.
I wrote it using TypeScript, I'm not familiar with Flow, sorry.
To easily handle 5 kinds of extend types:
object
,string
,object[]
,string[]
,(object|string)[]
,the trick is convert the extend to array if not an array, otherwise keep the array, then loop it:
so, i just handle only for the
object
&string
inside the loop.I also updated the TS definition for the
JssStyle
, so it acceptextend
property correctly: