Skip to content

Latest commit

 

History

History
164 lines (110 loc) · 8.44 KB

CHANGELOG.md

File metadata and controls

164 lines (110 loc) · 8.44 KB

@remix-run/router

1.3.0-pre.2

Minor Changes

  • Added support for navigation blocking APIs (#9709)

1.3.0-pre.1

Patch Changes

  • Fix scroll reset if a submission redirects (#9886)

1.3.0-pre.0

Minor Changes

  • Expose deferred information from createStaticHandler (#9760)

Patch Changes

  • Improved absolute redirect url detection in actions/loaders (#9829)
  • Fix URL creation with memory histories (#9814)
  • Fix generatePath when optional params are present (#9764)

1.2.1

Patch Changes

  • Include submission info in shouldRevalidate on action redirects (#9777, #9782)
  • Reset actionData on action redirect to current location (#9772)

1.2.0

Minor Changes

  • Remove unstable_ prefix from createStaticHandler/createStaticRouter/StaticRouterProvider (#9738)

Patch Changes

  • Fix explicit replace on submissions and PUSH on submission to new paths (#9734)
  • Fix a few bugs where loader/action data wasn't properly cleared on errors (#9735)
  • Prevent useLoaderData usage in errorElement (#9735)
  • Skip initial scroll restoration for SSR apps with hydrationData (#9664)

1.1.0

This release introduces support for Optional Route Segments. Now, adding a ? to the end of any path segment will make that entire segment optional. This works for both static segments and dynamic parameters.

Optional Params Examples

  • Path lang?/about will match:
    • /:lang/about
    • /about
  • Path /multistep/:widget1?/widget2?/widget3? will match:
    • /multistep
    • /multistep/:widget1
    • /multistep/:widget1/:widget2
    • /multistep/:widget1/:widget2/:widget3

Optional Static Segment Example

  • Path /home? will match:
    • /
    • /home
  • Path /fr?/about will match:
    • /about
    • /fr/about

Minor Changes

  • Allows optional routes and optional static segments (#9650)

Patch Changes

  • Stop incorrectly matching on partial named parameters, i.e. <Route path="prefix-:param">, to align with how splat parameters work. If you were previously relying on this behavior then it's recommended to extract the static portion of the path at the useParams call site: (#9506)
// Old behavior at URL /prefix-123
<Route path="prefix-:id" element={<Comp /> }>

function Comp() {
  let params = useParams(); // { id: '123' }
  let id = params.id; // "123"
  ...
}

// New behavior at URL /prefix-123
<Route path=":id" element={<Comp /> }>

function Comp() {
  let params = useParams(); // { id: 'prefix-123' }
  let id = params.id.replace(/^prefix-/, ''); // "123"
  ...
}
  • Persist headers on loader request's after SSR document action request (#9721)
  • Fix requests sent to revalidating loaders so they reflect a GET request (#9660)
  • Fix issue with deeply nested optional segments (#9727)
  • GET forms now expose a submission on the loading navigation (#9695)
  • Fix error boundary tracking for multiple errors bubbling to the same boundary (#9702)

1.0.5

Patch Changes

  • Fix requests sent to revalidating loaders so they reflect a GET request (#9680)
  • Remove instanceof Response checks in favor of isResponse (#9690)
  • Fix URL creation in Cloudflare Pages or other non-browser-environments (#9682, #9689)
  • Add requestContext support to static handler query/queryRoute (#9696)
    • Note that the unstable API of queryRoute(path, routeId) has been changed to queryRoute(path, { routeId, requestContext })

1.0.4

Patch Changes

  • Throw an error if an action/loader function returns undefined 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 you loader/action returns a value, and you may return null 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

1.0.3

Patch Changes

  • Fix hrefs generated when using createHashRouter (#9409)
  • fix encoding/matching issues with special chars (#9477, #9496)
  • Support basename and relative routing in loader/action redirects (#9447)
  • Ignore pathless layout routes when looking for proper submission action function (#9455)
  • properly support index routes with a path in useResolvedPath (#9486)
  • Add UMD build for @remix-run/router (#9446)
  • fix createURL in local file execution in Firefox (#9464)
  • Updates to unstable_createStaticHandler for incorporating into Remix (#9482, #9465)

1.0.2

Patch Changes

  • Reset actionData after a successful action redirect (#9334)
  • Update matchPath to avoid false positives on dash-separated segments (#9300)
  • If an index route has children, it will result in a runtime error. We have strengthened our RouteObject/RouteProps types to surface the error in TypeScript. (#9366)

1.0.1

Patch Changes

  • Preserve state from initialEntries (#9288)
  • Preserve ?index for fetcher get submissions to index routes (#9312)

1.0.0

This is the first stable release of @remix-run/router, which provides all the underlying routing and data loading/mutation logic for react-router. You should not be using this package directly unless you are authoring a routing library similar to react-router.

For an overview of the features provided by react-router, we recommend you go check out the docs, especially the feature overview and the tutorial.

For an overview of the features provided by @remix-run/router, please check out the README.