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

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

DustinBrett
Copy link

@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

⚠️ No Changeset found

Latest commit: 11d6b45

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a 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.

Latest deployment of this branch, based on commit 11d6b45:

Sandbox Source
Emotion Configuration

@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
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
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
Author

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

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
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.

@DustinBrett
Copy link
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

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.

None yet

4 participants