Skip to content

Conversation

@depfu
Copy link
Contributor

@depfu depfu bot commented Oct 17, 2023

Here is everything you need to know about this upgrade. Please take a good look at what changed and the test results before merging this pull request.

What changed?

✳️ react-router-dom (^5.2.0 → ^6.17.0) · Repo · Changelog

Release Notes

6.17.0 (from changelog)

Minor Changes

  • Add experimental support for the View Transitions API via document.startViewTransition to enable CSS animated transitions on SPA navigations in your application. (#10916)

    The simplest approach to enabling a View Transition in your React Router app is via the new <Link unstable_viewTransition> prop. This will cause the navigation DOM update to be wrapped in document.startViewTransition which will enable transitions for the DOM update. Without any additional CSS styles, you'll get a basic cross-fade animation for your page.

    If you need to apply more fine-grained styles for your animations, you can leverage the unstable_useViewTransitionState hook which will tell you when a transition is in progress and you can use that to apply classes or styles:

    function ImageLink(to, src, alt) {
      let isTransitioning = unstable_useViewTransitionState(to);
      return (
        <Link to={to} unstable_viewTransition>
          <img
            src={src}
            alt={alt}
            style={{
              viewTransitionName: isTransitioning ? "image-expand" : "",
            }}
          />
        </Link>
      );
    }

    You can also use the <NavLink unstable_viewTransition> shorthand which will manage the hook usage for you and automatically add a transitioning class to the <a> during the transition:

    a.transitioning img {
      view-transition-name: "image-expand";
    }
    <NavLink to={to} unstable_viewTransition>
      <img src={src} alt={alt} />
    </NavLink>

    For an example usage of View Transitions with React Router, check out our fork of the Astro Records demo.

    For more information on using the View Transitions API, please refer to the Smooth and simple transitions with the View Transitions API guide from the Google Chrome team.

    Please note, that because the ViewTransition API is a DOM API, we now export a specific RouterProvider from react-router-dom with this functionality. If you are importing RouterProvider from react-router, then it will not support view transitions. (#10928

Patch Changes

  • Log a warning and fail gracefully in ScrollRestoration when sessionStorage is unavailable (#10848)
  • Updated dependencies:
    • @remix-run/router@1.10.0
    • react-router@6.17.0

Does any of this look wrong? Please let us know.


Depfu Status

Depfu will automatically keep this PR conflict-free, as long as you don't add any commits to this branch yourself. You can also trigger a rebase manually by commenting with @depfu rebase.

All Depfu comment commands
@​depfu rebase
Rebases against your default branch and redoes this update
@​depfu recreate
Recreates this PR, overwriting any edits that you've made to it
@​depfu merge
Merges this PR once your tests are passing and conflicts are resolved
@​depfu cancel merge
Cancels automatic merging of this PR
@​depfu close
Closes this PR and deletes the branch
@​depfu reopen
Restores the branch and reopens this PR (if it's closed)
@​depfu pause
Ignores all future updates for this dependency and closes this PR
@​depfu pause [minor|major]
Ignores all future minor/major updates for this dependency and closes this PR
@​depfu resume
Future versions of this dependency will create PRs again (leaves this PR as is)

@depfu
Copy link
Contributor Author

depfu bot commented Nov 1, 2023

Closed in favor of #146.

@depfu depfu bot closed this Nov 1, 2023
@depfu depfu bot deleted the depfu/update/ApplicationCodeMyprojectfrontend/npm/react-router-dom-6.17.0 branch November 1, 2023 19:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant