Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove getDynamicStyles from core #1000

Closed
wants to merge 7 commits into from
Closed

Conversation

HenriBeck
Copy link
Member

What would you like to add/fix?
Remove getDynamicStyles from the core and create utility function in plugin repos

@HenriBeck HenriBeck requested a review from kof January 26, 2019 15:46

export type Options = UpdateOptions

function getObservableStyles(styles: Object): Object | null {
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we are not using this anywhere, why having it?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We will need it for proper integration into react-jss, but I will make that in a different PR.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What integration are you talking about? mb we should do it differently in that case.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Proper observables integration into react-jss

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But I'm also not sure If we actually need observable support in react-jss.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we end up having a function that knows about both, functions and observables, it shouldn't be in one of those plugins, but somewhere else. Duplicating that function in both is also not very nice, it might need some adjustments in the future and having it twice doesn't make it easier to maintain.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

But why do we need to have a function which knows about both?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that these function should live in their respective plugin packages and not in the core.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I agree that core is not the ideal place for them, but I want to keep performance-first constraint. If we need to loop over styles twice just for the sake of functions living in separate packages, it is not quite performance-first.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only place we are using getDynamicStyles at the moment is in react-jss. And without #1002 there will be no performance loose.

@kof
Copy link
Member

kof commented Mar 10, 2019

Btw. another reason to move utilities like this one to a separate package jss-utils is to make every plugin that depends on them treeshakable, since those are pure

@HenriBeck
Copy link
Member Author

They are also tree-shakable right now. Also this PR even contains a small performance boost for react-jss because we only extract the function styles and not the observables.

@kof
Copy link
Member

kof commented Mar 10, 2019

Nope, since we import from a single entry point and jss package entry point has side effects, nothing that we export from jss package will be treeshakable.

@HenriBeck
Copy link
Member Author

The util functions are now in their respective plugin packages which are pure and don't contain side effects.

@kof
Copy link
Member

kof commented Mar 10, 2019

Right, forgot about it

@kof
Copy link
Member

kof commented May 8, 2019

Considered latest developments, we should move that function to react-jss package

@kof
Copy link
Member

kof commented Mar 15, 2020

Closing in favor of this one #1303

@kof kof closed this Mar 15, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants