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

Add fetchpriority to props #3093

Merged
merged 4 commits into from
Sep 21, 2024
Merged

Conversation

DustinBrett
Copy link
Contributor

@DustinBrett DustinBrett commented Aug 15, 2023

What:

Adding the now standardized fetchpriority property to the valid props list. "Fetch Priority" is now included in the HTML living standard. It's been in Chrome since 101-102 and is now coming to Safari 17.

Why:

This is a useful property that I use throughout my site. In some places I am passing it to a styled component and because it uses emotions is-prop-valid check, I am getting a warning. I think this property will continue to grow in adoption and should be considered valid.

image

How:

Added the lowercased property name to packages\is-prop-valid\src\props.js. Similar to what was done in the closed PR #2748.

Checklist:

  • Documentation N/A
  • Tests N/A
  • Code complete N/A
  • Changeset N/A

@changeset-bot
Copy link

changeset-bot bot commented Aug 15, 2023

🦋 Changeset detected

Latest commit: 1714368

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
@emotion/is-prop-valid Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@codesandbox-ci
Copy link

codesandbox-ci bot commented Aug 15, 2023

This pull request is automatically built and testable in CodeSandbox.

To see build info of the built libraries, click here or the icon next to each commit SHA.

@andreisena
Copy link

@DustinBrett Thanks for the PR. I was looking for this.
Based on this PR, shouldn't fetchPriority (camelCase) be added too?

@DustinBrett
Copy link
Contributor Author

@DustinBrett Thanks for the PR. I was looking for this. Based on this PR, shouldn't fetchPriority (camelCase) be added too?

No problem! I could add fetchPriority if it's needed, but my use case was the lowercase one and I am not sure when the camel case one is used. I wanted to keep the PR lean to try and get it through. Is there a use case for fetchPriority?

@andreisena
Copy link

@DustinBrett Thanks for the PR. I was looking for this. Based on this PR, shouldn't fetchPriority (camelCase) be added too?

No problem! I could add fetchPriority if it's needed, but my use case was the lowercase one and I am not sure when the camel case one is used. I wanted to keep the PR lean to try and get it through. Is there a use case for fetchPriority?

As you can see here, on @types/react it was renamed to camelCase format.
And this issue on facebook/react repo to support on camelCase too.

@DustinBrett
Copy link
Contributor Author

@DustinBrett Thanks for the PR. I was looking for this. Based on this PR, shouldn't fetchPriority (camelCase) be added too?

No problem! I could add fetchPriority if it's needed, but my use case was the lowercase one and I am not sure when the camel case one is used. I wanted to keep the PR lean to try and get it through. Is there a use case for fetchPriority?

As you can see here, on @types/react it was renamed to camelCase format. And this issue on facebook/react repo to support on camelCase too.

Good points, thanks for the info. I've updated the PR.

Copy link

@oliviertassinari oliviertassinari left a comment

Choose a reason for hiding this comment

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

@@ -69,6 +69,8 @@ const props = {
draggable: true,
encType: true,
enterKeyHint: true,
fetchpriority: true,

Choose a reason for hiding this comment

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

Is this even valid?

Suggested change
fetchpriority: true,

Copy link
Contributor Author

@DustinBrett DustinBrett Sep 11, 2023

Choose a reason for hiding this comment

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

It depends what you mean by valid, but I would say likely yes. I use this and it does indeed function and have an effect in browsers. The links I provided in the description also use it this way.

image

Also checking the way this list is used, it seemed to me that both versions should be added as I saw nothing to turn the camel case version into lower case.

Copy link

@oliviertassinari oliviertassinari Sep 11, 2023

Choose a reason for hiding this comment

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

I guess the handling of uppercase vs. lowercase confuses me a bit in @emotion/is-prop-valid.

References:

Maybe we should actually .toLowerCase() when determining if a prop should be forwarded or not.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Ya it's possible converting to lower case could be useful. I didn't see many duplicates. For my use case with Styled Components, it currently passes without the capitol. So I think it would be needed for this PR to stop my warning. The camel case version is not one I've had to use with React yet.

Copy link
Member

Choose a reason for hiding this comment

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

I think we should stick to the camelCase here and follow React's suite.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

The issue is that the camelCase only solution is not supported with the latest Next.js w/React. Only in React 19 will they be moving to camelCase for this property. If I change to using camelCase on elements within my codebase I get an error, as do others which is mentioned in the links that @oliviertassinari posted a year ago.

image

@DustinBrett
Copy link
Contributor Author

This was mentioned as part of Safari 17.2 also btw.

https://webkit.org/blog/14787/webkit-features-in-safari-17-2/#fetch-priority

@paales
Copy link

paales commented Jan 22, 2024

Can we get this moving forward? I would guess that the camel case variant is the one go with as metioned here: https://developer.mozilla.org/en-US/docs/Web/API/HTMLImageElement/fetchPriority

@Andarist Andarist merged commit 532ff57 into emotion-js:main Sep 21, 2024
11 of 13 checks passed
@github-actions github-actions bot mentioned this pull request Sep 21, 2024
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.

5 participants