Skip to content
New issue

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

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

Already on GitHub? # to your account

[Snyk] Upgrade styled-components from 5.0.0 to 5.3.0 #4

Open
wants to merge 1 commit into
base: develop
Choose a base branch
from

Conversation

snyk-bot
Copy link

Snyk has created this PR to upgrade styled-components from 5.0.0 to 5.3.0.

merge advice
ℹ️ Keep your dependencies up-to-date. This makes it easier to fix existing vulnerabilities and to more quickly identify and fix newly disclosed vulnerabilities when they affect your project.


  • The recommended version is 22 versions ahead of your current version.
  • The recommended version was released a month ago, on 2021-05-05.
Release notes
Package name: styled-components
  • 5.3.0 - 2021-05-05
    • Pass elementToBeCreated as a third parameter to shouldForwardProp so that the user-specified function can decide whether to pass through props based on whether the created element will be a tag or another component. (see #3436)

    • Fix React Native components accepts function as style prop. (see #3389)

  • 5.2.3 - 2021-03-31

    fix an issue with an unguarded window accessor in a SSR path (see #3446)

  • 5.2.2 - 2021-03-30
    • For React Native based components, pass testID down to the native component if specified for an easier time testing. (see #3365)

    • Enable users of the babel macro to customize the styled-components import with importModuleName (see #3422)

    • [fix] COMPLEX_SELECTOR_PREFIX.includes wasn't transpiled (see #3397)

  • 5.2.1 - 2020-10-30

    Tweak server-side build settings to resolve an issue with jest-dom not being able to pick up generated styles (see #3308) thanks @ Lazyuki

  • 5.2.0 - 2020-09-04
    • Make sure StyleSheetManager renders all styles in iframe / child windows (see #3159) thanks @ eramdam!

    • Rework how components self-reference in extension scenarios (see #3236); should fix a bunch of subtle bugs around patterns like & + &

    • Fix keyframes not receiving a modified stylis instance when using something like stylis-plugin-rtl (see #3239)

    • Big performance gain for components using style objects (see #3239)

    • We no longer emit dynamic classNames for empty rulesets, so some className churn may occur in snapshots

    • Preallocate global style placement to ensure cGS is consistently inserted at the top of the stylesheet; note that this is done in runtime order so, if you have multiple cGS that have overlapping styles, ensure they're defined in code in the sequence you would want them injected (see #3239)

    • Add "engines" to package.json (currently set to Node 10, the oldest supported LTS distribution) (see #3201) thanks @ MichaelDeBoey!

    Finally, special thanks to @ willheslam for testing and some last minute fixes on this release!

  • 5.2.0-test.12 - 2020-09-02
  • 5.2.0-test.11 - 2020-08-31
  • 5.2.0-test.10 - 2020-08-30

    We are planning to release 5.2 on September 2/3, please help us test!

    yarn add styled-components@test
    • Preallocate global style placement to ensure cGS is consistently inserted at the top of the stylesheet; note that this is done in runtime order so, if you have multiple cGS that have overlapping styles, ensure they're defined in code in the sequence you would want them injected (see #3239)

      NOTE: This is a behavioral change and might require adjustment in your codebase if you have many createGlobalStyle components in use. We do not think it will affect the majority of projects other than fix existing bugs.

    • createGlobalStyle is now React.StrictMode compliant

    • Make sure StyleSheetManager renders all styles in iframe / child windows (see #3159) thanks @ eramdam!

    • Rework how components self-reference in extension scenarios (see #3236); should fix a bunch of subtle bugs around patterns like & + &

    • Fix keyframes not receiving a modified stylis instance when using something like stylis-plugin-rtl (see #3239)

    • Big performance gain for components using style objects (see #3239)

    • We no longer emit dynamic classNames for empty rulesets, so some className churn may occur in snapshots

    • Add "engines" to package.json (currently set to Node 10, the oldest supported LTS distribution) (see #3201) thanks @ MichaelDeBoey!

  • 5.2.0-test.9 - 2020-08-30
  • 5.2.0-test.8 - 2020-08-30
  • 5.2.0-test.7 - 2020-08-30
  • 5.2.0-test.6 - 2020-08-30
  • 5.2.0-test.5 - 2020-08-28
  • 5.2.0-test.4 - 2020-08-28
  • 5.2.0-test.3 - 2020-08-28
  • 5.2.0-test.2 - 2020-08-27
  • 5.2.0-test.1 - 2020-08-27
  • 5.2.0-test.0 - 2020-08-27
  • 5.1.1 - 2020-05-25

    New Functionality

    • Implement shouldForwardProp API for native and primitive platforms, which was previously missing in [v5.1.0] (see #3093)
      This has been released under a patch bump instead of a minor, since it's only been missing from Native-support.

    Bugfixes

    • Added useTheme hook to named exports for react-primitives entrypoint (see #2982) thanks @ jladuval!
    • Escape every CSS ident character necessary when converting component display names to class names (see #3102) thanks @ kripod!
  • 5.1.0 - 2020-04-07

    New Functionality

    • Add shouldForwardProp API (almost the same as emotion's, just a slightly different usage pattern); #3006

      Sometimes when composing multiple higher-order components together, it's possible to get into scenarios when multiple layers consume props by the same name. In the past we've introduced various workarounds for popular props like "as" but this power-user API allows for more granular customization of what props are passed down to descendant component children when using the styled() HOC wrapper.

      When combined with other APIs like .attrs() this becomes a very powerful constellation of abilities.

      Here's how you use it:

      const Comp = styled('div').withConfig({
        shouldForwardProp: (prop, defaultValidatorFn) => !['filterThis'].includes(prop),
      })`
        color: red;
      `;
      

      render(<Comp filterThis="abc" passThru="def" />);

      Renders: <div className="[generated]" passThru="def"></div>

      The second argument defaultValidatorFn is what we use internally to validate props based on known HTML attributes. It's provided so you can filter exactly what props you don't wish to pass and then fall-back to the default filtering mechanism if desired.

      Other methods on the styled HOC like .attrs can be chained after withConfig(), and before opening your template literal:

      const Comp = styled('div').withConfig({
        shouldForwardProp: (prop, defaultValidatorFn) => !['filterThis'].includes(prop),
      }).attrs({ className: 'foo' })`
        color: red;
      `;
      

      render(<Comp filterThis="abc" passThru="def" />);

      Renders: <div className="[generated] foo" passThru="def"></div>

      Thanks @ stevesims and all that contributed!

    • Add "transient props" API; #3052

      Think of transient props as a lightweight, but complementary API to shouldForwardProp. Because styled-components allows any kind of prop to be used for styling (a trait shared by most CSS-in-JS libraries, but not the third party library ecosystem in general), adding a filter for every possible prop you might use can get cumbersome.

      Transient props are a new pattern to pass props that are explicitly consumed only by styled components and are not meant to be passed down to deeper component layers. Here's how you use them:

      const Comp = styled.div`
        color: ${props => props.$fg || 'black'};
      `;
      

      render(<Comp $fg="red">I'm red!</Comp>);

      Note the dollar sign ($) prefix on the prop; this marks it as transient and styled-components knows not to add it to the rendered DOM element or pass it further down the component hierarchy.

    Bugfixes

    • Fix slow SSR Rehydration for malformed CSS and increase fault-tolerance (see #3018)

    • Change isPlainObject (internal method) to support objects created in a different context (see #3068) thanks @ keeganstreet!

    • Add support for the <video disablePictureInPicture> (see #3058) thanks @ egdbear!

  • 5.0.1 - 2020-02-04
    • Added useTheme hook to named exports for react native (#2982)

    • Performance enhancements

      • Refactored hashing function that is a bit faster in benchmarks (#2983)
      • Fixed a bitwise math issue that was causing SSR performance degradations due to how we allocate typed arrays under the hood (#2996)
    • Added some helpful new dev-time warnings for antipatterns

      • Recommending against usage of css @ import inside createGlobalStyle and what to do instead (#2997)
      • Catching and warning against dynamic creation of styled-components inside other component render paths (#2998)
  • 5.0.1-revisedssr - 2020-02-13
  • 5.0.0 - 2020-01-13
    Read more
from styled-components GitHub release notes

Note: You are seeing this because you or someone else with access to this repository has authorized Snyk to open upgrade PRs.

For more information:

🧐 View latest project report

🛠 Adjust upgrade PR settings

🔕 Ignore this dependency or unsubscribe from future upgrade PRs

# for free to join this conversation on GitHub. Already have an account? # to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

1 participant