cerberus
cerberus copied to clipboard
Bump react-router-dom from 5.3.3 to 6.11.0 in /cerberus-dashboard
Bumps react-router-dom from 5.3.3 to 6.11.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.11.0
Minor Changes
- Enable
basename
support inuseFetcher
(#10336)
- If you were previously working around this issue by manually prepending the
basename
then you will need to remove the manually prependedbasename
from yourfetcher
calls (fetcher.load('/basename/route') -> fetcher.load('/route')
)Patch Changes
- Fix inadvertent re-renders when using
Component
instead ofelement
on a route definition (#10287)- Fail gracefully on
<Link to="//">
and other invalid URL values (#10367)- Switched from
useSyncExternalStore
touseState
for internal@remix-run/router
router state syncing in<RouterProvider>
. We found some subtle bugs where router state updates got propagated before other normaluseState
updates, which could lead to footguns inuseEffect
calls. (#10377, #10409)- Add static prop to
StaticRouterProvider
's internalRouter
component (#10401)- When using a
RouterProvider
,useNavigate
/useSubmit
/fetcher.submit
are now stable across location changes, since we can handle relative routing via the@remix-run/router
instance and get rid of our dependence onuseLocation()
. When usingBrowserRouter
, these hooks remain unstable across location changes because they still rely onuseLocation()
. (#10336)- Updated dependencies:
[email protected]
@remix-run/[email protected]
6.10.0
Minor Changes
Added support for Future Flags in React Router. The first flag being introduced is
future.v7_normalizeFormMethod
which will normalize the exposeduseNavigation()/useFetcher()
formMethod
fields as uppercase HTTP methods to align with thefetch()
behavior. (#10207)
- When
future.v7_normalizeFormMethod === false
(default v6 behavior),
useNavigation().formMethod
is lowercaseuseFetcher().formMethod
is lowercase- When
future.v7_normalizeFormMethod === true
:
useNavigation().formMethod
is uppercaseuseFetcher().formMethod
is uppercasePatch Changes
- Fix
createStaticHandler
to also check forErrorBoundary
on routes in addition toerrorElement
(#10190)- Updated dependencies:
@remix-run/[email protected]
[email protected]
6.9.0
Minor Changes
React Router now supports an alternative way to define your route
element
anderrorElement
fields as React Components instead of React Elements. You can instead pass a React Component to the newComponent
andErrorBoundary
fields if you choose. There is no functional difference between the two, so use whichever approach you prefer 😀. You shouldn't be defining both, but if you doComponent
/ErrorBoundary
will "win". (#10045)Example JSON Syntax
// Both of these work the same: const elementRoutes = [{ path: '/',
... (truncated)
Commits
7ff51c0
chore: Update version for release (#10414)5ec9f8e
chore: Update version for release (pre) (#10410)82ca7c0
chore: Update version for release (pre) (#10402)b9e7401
Add missing static propr for StaticRouterProvider (#10401)bf8ee9d
chore: Update version for release (pre) (#10398)f92aa2e
Revert "Add better control over submission serialization (#10342)"4bb7e48
Revert "Support direct handlers in useSubmit/fetcher.submit/fetcher.load (#10...af76d50
refactor(react-router): Fix useRoutesImpl for SSR (#10395)3efa5d0
Remove useSyncExternalStore in favor of useState (#10377)2821817
Fix descendant Routes rendering alongside RouterProvider errors (#10374)- 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 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)