addons-code-manager
addons-code-manager copied to clipboard
Bump react-router-dom from 4.3.1 to 6.18.0
Bumps react-router-dom from 4.3.1 to 6.18.0.
Release notes
Sourced from react-router-dom's releases.
v6.4.4
What's Changed
- Throw an error if an
action/loaderfunction returnsundefinedas revalidations need to know whether the loader has previously been executed.undefinedalso causes issues during SSR stringification for hydration. You should always ensure yourloader/actionreturns a value, and you may returnnullif you don't wish to return anything. (#9511)- Properly handle redirects to external domains (#9590, #9654)
- Preserve the HTTP method on 307/308 redirects (#9597)
- Support
basenamein static data routers (#9591)- Enhanced
ErrorResponsebodies to contain more descriptive text in internal 403/404/405 scenarios- Fix issues with encoded characters in
NavLinkand descendant<Routes>(#9589, #9647)- Properly serialize/deserialize
ErrorResponseinstances when using built-in hydration (#9593)- Support
basenamein static data routers (#9591)- Updated dependencies:
@remix-run/[email protected][email protected]Full Changelog: https://github.com/remix-run/react-router/compare/[email protected]@6.4.4
[email protected]
Patch Changes
fix: remove internal router singleton (#9227)
This change removes the internal module-level
routerSingletonwe create and maintain inside our data routers since it was causing a number of headaches for non-simple use cases:
- Unit tests are a pain because you need to find a way to reset the singleton in-between tests
- Use use a
_resetModuleScopesingleton for our tests- ...but this isn't exposed to users who may want to do their own tests around our router
- The JSX children
<Route>objects cause non-intuitive behavior based on idiomatic react expectations
- Conditional runtime
<Route>'s won't get picked up- Adding new
<Route>'s during local dev won't get picked up during HMR- Using external state in your elements doesn't work as one might expect (see #9225)
Instead, we are going to lift the singleton out into user-land, so that they create the router singleton and manage it outside the react tree - which is what react 18 is encouraging with
useSyncExternalStoreanyways! This also means that since users create the router - there's no longer any difference in the rendering aspect for memory/browser/hash routers (which only impacts router/history creation) - so we can get rid of those and trim to a simpleRouterProvider// Before function App() { <DataBrowserRouter> <Route path="/" element={<Layout />}> <Route index element={<Home />}> </Route> <DataBrowserRouter> }// After let router = createBrowserRouter([{ path: "/", element: <Layout />, children: [{ index: true,
... (truncated)
Changelog
Sourced from react-router-dom's changelog.
6.18.0
Minor Changes
Add support for manual fetcher key specification via
useFetcher({ key: string })so you can access the same fetcher instance from different components in your application without prop-drilling (RFC) (#10960)
- Fetcher keys are now also exposed on the fetchers returned from
useFetchersso that they can be looked up bykeyAdd
navigate/fetcherKeyparams/props touseSumbit/Formto support kicking off a fetcher submission under the hood with an optionally user-specifiedkey(#10960)
- Invoking a fetcher in this way is ephemeral and stateless
- If you need to access the state of one of these fetchers, you will need to leverage
useFetcher({ key })to look it up elsewherePatch Changes
- Adds a fetcher context to
RouterProviderthat holds completed fetcher data, in preparation for the upcoming future flag that will change the fetcher persistence/cleanup behavior (#10961)- Fix the
futureprop onBrowserRouter,HashRouterandMemoryRouterso that it accepts aPartial<FutureConfig>instead of requiring all flags to be included. (#10962)- Updated dependencies:
@remix-run/[email protected][email protected]6.17.0
Minor Changes
Add experimental support for the View Transitions API via
document.startViewTransitionto 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 indocument.startViewTransitionwhich 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_useViewTransitionStatehook 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 atransitioningclass to the<a>during the transition:
... (truncated)
Commits
667f936chore: Update version for release (#10981)67af262chore: Update version for release (pre) (#10978)1500288Updates for v7_fetcherPersist post-processing logic (#10977)cacc90bchore: Update version for release (pre) (#10966)19af0cfAdd future.v7_fetcherPersist flag (#10962)cb2d911Add fetcher data layer (#10961)c0dbcd2Add useFetcher(key) and <Form navigate={false}> (#10960)805924dRevert "Ensure Form contains splat portion of pathname when no action is spec...908a40aEnsure Form contains splat portion of pathname when no action is specified (#...a71b4e2Merge branch 'release-next' into dev- Additional commits viewable in compare view
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.
Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot mergewill merge this PR after your CI passes on it@dependabot squash and mergewill squash and merge this PR after your CI passes on it@dependabot cancel mergewill cancel a previously requested merge and block automerging@dependabot reopenwill reopen this PR if it is closed@dependabot closewill close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
┆Issue is synchronized with this Jira Task