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
/loader
function returnsundefined
as revalidations need to know whether the loader has previously been executed.undefined
also causes issues during SSR stringification for hydration. You should always ensure yourloader
/action
returns a value, and you may returnnull
if 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
basename
in static data routers (#9591)- Enhanced
ErrorResponse
bodies to contain more descriptive text in internal 403/404/405 scenarios- Fix issues with encoded characters in
NavLink
and descendant<Routes>
(#9589, #9647)- Properly serialize/deserialize
ErrorResponse
instances when using built-in hydration (#9593)- Support
basename
in 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
routerSingleton
we 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
_resetModuleScope
singleton 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
useSyncExternalStore
anyways! 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
useFetchers
so that they can be looked up bykey
Add
navigate
/fetcherKey
params/props touseSumbit
/Form
to 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
RouterProvider
that holds completed fetcher data, in preparation for the upcoming future flag that will change the fetcher persistence/cleanup behavior (#10961)- Fix the
future
prop onBrowserRouter
,HashRouter
andMemoryRouter
so 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.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 indocument.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 atransitioning
class to the<a>
during the transition:
... (truncated)
Commits
667f936
chore: Update version for release (#10981)67af262
chore: Update version for release (pre) (#10978)1500288
Updates for v7_fetcherPersist post-processing logic (#10977)cacc90b
chore: Update version for release (pre) (#10966)19af0cf
Add future.v7_fetcherPersist flag (#10962)cb2d911
Add fetcher data layer (#10961)c0dbcd2
Add useFetcher(key) and <Form navigate={false}> (#10960)805924d
Revert "Ensure Form contains splat portion of pathname when no action is spec...908a40a
Ensure Form contains splat portion of pathname when no action is specified (#...a71b4e2
Merge 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 rebase
will rebase this PR -
@dependabot recreate
will recreate this PR, overwriting any edits that have been made to it -
@dependabot merge
will merge this PR after your CI passes on it -
@dependabot squash and merge
will squash and merge this PR after your CI passes on it -
@dependabot cancel merge
will cancel a previously requested merge and block automerging -
@dependabot reopen
will reopen this PR if it is closed -
@dependabot close
will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually -
@dependabot show <dependency name> ignore conditions
will show all of the ignore conditions of the specified dependency -
@dependabot ignore this major version
will 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 version
will 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 dependency
will 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