Created custom stylable decorator #2451
Merged
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.
So after some investigation, I learned that the mixin library I found doesn't really work well with React, in the sense it doesn't do field merging for static properties or function-call chaining for react built-in methods. I tried this to investigate an alternative, where I created a custom decorator for StylePropable (called Stylable) which performs the same action as using a mixin on an es5 component. So now the parallel for using StylePropable mixin in the es5 syntax is using the Stylable decorator in the es6 syntax.
This was just an experiment and I'm open to feedback. The alternative, in the style of the mixin decorator, is just making a custom mixin decorator which is React-aware. I investigated this as well, and would likely be able to use a lot of the code from the React library which does the mixin merging (I might try making a library which does this).