Skip to content

Commit 2da4b99

Browse files
committed
Merge branch 'dev' into v7
2 parents a34b722 + 56969f2 commit 2da4b99

19 files changed

+321
-206
lines changed

.changeset/data-strategy.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

.changeset/skip-action-revalidation.md

Lines changed: 0 additions & 11 deletions
This file was deleted.

.changeset/slow-flies-help.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

.changeset/static-query-flags.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

CHANGELOG.md

Lines changed: 65 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -13,16 +13,21 @@ We manage release notes in this file instead of the paginated Github Releases Pa
1313
<summary>Table of Contents</summary>
1414

1515
- [React Router Releases](#react-router-releases)
16+
- [v6.23.0](#v6230)
17+
- [What's Changed](#whats-changed)
18+
- [Data Strategy (unstable)](#data-strategy-unstable)
19+
- [Skip Action Error Revalidation (unstable)](#skip-action-error-revalidation-unstable)
20+
- [Minor Changes](#minor-changes)
1621
- [v6.22.3](#v6223)
1722
- [Patch Changes](#patch-changes)
1823
- [v6.22.2](#v6222)
1924
- [Patch Changes](#patch-changes-1)
2025
- [v6.22.1](#v6221)
2126
- [Patch Changes](#patch-changes-2)
2227
- [v6.22.0](#v6220)
23-
- [What's Changed](#whats-changed)
28+
- [What's Changed](#whats-changed-1)
2429
- [Core Web Vitals Technology Report Flag](#core-web-vitals-technology-report-flag)
25-
- [Minor Changes](#minor-changes)
30+
- [Minor Changes](#minor-changes-1)
2631
- [Patch Changes](#patch-changes-3)
2732
- [v6.21.3](#v6213)
2833
- [Patch Changes](#patch-changes-4)
@@ -31,96 +36,96 @@ We manage release notes in this file instead of the paginated Github Releases Pa
3136
- [v6.21.1](#v6211)
3237
- [Patch Changes](#patch-changes-6)
3338
- [v6.21.0](#v6210)
34-
- [What's Changed](#whats-changed-1)
39+
- [What's Changed](#whats-changed-2)
3540
- [`future.v7_relativeSplatPath`](#futurev7_relativesplatpath)
3641
- [Partial Hydration](#partial-hydration)
37-
- [Minor Changes](#minor-changes-1)
42+
- [Minor Changes](#minor-changes-2)
3843
- [Patch Changes](#patch-changes-7)
3944
- [v6.20.1](#v6201)
4045
- [Patch Changes](#patch-changes-8)
4146
- [v6.20.0](#v6200)
42-
- [Minor Changes](#minor-changes-2)
47+
- [Minor Changes](#minor-changes-3)
4348
- [Patch Changes](#patch-changes-9)
4449
- [v6.19.0](#v6190)
45-
- [What's Changed](#whats-changed-2)
50+
- [What's Changed](#whats-changed-3)
4651
- [`unstable_flushSync` API](#unstable_flushsync-api)
47-
- [Minor Changes](#minor-changes-3)
52+
- [Minor Changes](#minor-changes-4)
4853
- [Patch Changes](#patch-changes-10)
4954
- [v6.18.0](#v6180)
50-
- [What's Changed](#whats-changed-3)
55+
- [What's Changed](#whats-changed-4)
5156
- [New Fetcher APIs](#new-fetcher-apis)
5257
- [Persistence Future Flag (`future.v7_fetcherPersist`)](#persistence-future-flag-futurev7_fetcherpersist)
53-
- [Minor Changes](#minor-changes-4)
58+
- [Minor Changes](#minor-changes-5)
5459
- [Patch Changes](#patch-changes-11)
5560
- [v6.17.0](#v6170)
56-
- [What's Changed](#whats-changed-4)
61+
- [What's Changed](#whats-changed-5)
5762
- [View Transitions 🚀](#view-transitions-)
58-
- [Minor Changes](#minor-changes-5)
63+
- [Minor Changes](#minor-changes-6)
5964
- [Patch Changes](#patch-changes-12)
6065
- [v6.16.0](#v6160)
61-
- [Minor Changes](#minor-changes-6)
66+
- [Minor Changes](#minor-changes-7)
6267
- [Patch Changes](#patch-changes-13)
6368
- [v6.15.0](#v6150)
64-
- [Minor Changes](#minor-changes-7)
69+
- [Minor Changes](#minor-changes-8)
6570
- [Patch Changes](#patch-changes-14)
6671
- [v6.14.2](#v6142)
6772
- [Patch Changes](#patch-changes-15)
6873
- [v6.14.1](#v6141)
6974
- [Patch Changes](#patch-changes-16)
7075
- [v6.14.0](#v6140)
71-
- [What's Changed](#whats-changed-5)
76+
- [What's Changed](#whats-changed-6)
7277
- [JSON/Text Submissions](#jsontext-submissions)
73-
- [Minor Changes](#minor-changes-8)
78+
- [Minor Changes](#minor-changes-9)
7479
- [Patch Changes](#patch-changes-17)
7580
- [v6.13.0](#v6130)
76-
- [What's Changed](#whats-changed-6)
77-
- [Minor Changes](#minor-changes-9)
81+
- [What's Changed](#whats-changed-7)
82+
- [Minor Changes](#minor-changes-10)
7883
- [Patch Changes](#patch-changes-18)
7984
- [v6.12.1](#v6121)
8085
- [Patch Changes](#patch-changes-19)
8186
- [v6.12.0](#v6120)
82-
- [What's Changed](#whats-changed-7)
87+
- [What's Changed](#whats-changed-8)
8388
- [`React.startTransition` support](#reactstarttransition-support)
84-
- [Minor Changes](#minor-changes-10)
89+
- [Minor Changes](#minor-changes-11)
8590
- [Patch Changes](#patch-changes-20)
8691
- [v6.11.2](#v6112)
8792
- [Patch Changes](#patch-changes-21)
8893
- [v6.11.1](#v6111)
8994
- [Patch Changes](#patch-changes-22)
9095
- [v6.11.0](#v6110)
91-
- [Minor Changes](#minor-changes-11)
96+
- [Minor Changes](#minor-changes-12)
9297
- [Patch Changes](#patch-changes-23)
9398
- [v6.10.0](#v6100)
94-
- [What's Changed](#whats-changed-8)
95-
- [Minor Changes](#minor-changes-12)
99+
- [What's Changed](#whats-changed-9)
100+
- [Minor Changes](#minor-changes-13)
96101
- [Patch Changes](#patch-changes-24)
97102
- [v6.9.0](#v690)
98-
- [What's Changed](#whats-changed-9)
103+
- [What's Changed](#whats-changed-10)
99104
- [`Component`/`ErrorBoundary` route properties](#componenterrorboundary-route-properties)
100105
- [Introducing Lazy Route Modules](#introducing-lazy-route-modules)
101-
- [Minor Changes](#minor-changes-13)
106+
- [Minor Changes](#minor-changes-14)
102107
- [Patch Changes](#patch-changes-25)
103108
- [v6.8.2](#v682)
104109
- [Patch Changes](#patch-changes-26)
105110
- [v6.8.1](#v681)
106111
- [Patch Changes](#patch-changes-27)
107112
- [v6.8.0](#v680)
108-
- [Minor Changes](#minor-changes-14)
113+
- [Minor Changes](#minor-changes-15)
109114
- [Patch Changes](#patch-changes-28)
110115
- [v6.7.0](#v670)
111-
- [Minor Changes](#minor-changes-15)
116+
- [Minor Changes](#minor-changes-16)
112117
- [Patch Changes](#patch-changes-29)
113118
- [v6.6.2](#v662)
114119
- [Patch Changes](#patch-changes-30)
115120
- [v6.6.1](#v661)
116121
- [Patch Changes](#patch-changes-31)
117122
- [v6.6.0](#v660)
118-
- [What's Changed](#whats-changed-10)
119-
- [Minor Changes](#minor-changes-16)
120-
- [Patch Changes](#patch-changes-32)
121-
- [v6.5.0](#v650)
122123
- [What's Changed](#whats-changed-11)
123124
- [Minor Changes](#minor-changes-17)
125+
- [Patch Changes](#patch-changes-32)
126+
- [v6.5.0](#v650)
127+
- [What's Changed](#whats-changed-12)
128+
- [Minor Changes](#minor-changes-18)
124129
- [Patch Changes](#patch-changes-33)
125130
- [v6.4.5](#v645)
126131
- [Patch Changes](#patch-changes-34)
@@ -133,22 +138,22 @@ We manage release notes in this file instead of the paginated Github Releases Pa
133138
- [v6.4.1](#v641)
134139
- [Patch Changes](#patch-changes-38)
135140
- [v6.4.0](#v640)
136-
- [What's Changed](#whats-changed-12)
141+
- [What's Changed](#whats-changed-13)
137142
- [Remix Data APIs](#remix-data-apis)
138143
- [Patch Changes](#patch-changes-39)
139144
- [v6.3.0](#v630)
140-
- [Minor Changes](#minor-changes-18)
145+
- [Minor Changes](#minor-changes-19)
141146
- [v6.2.2](#v622)
142147
- [Patch Changes](#patch-changes-40)
143148
- [v6.2.1](#v621)
144149
- [Patch Changes](#patch-changes-41)
145150
- [v6.2.0](#v620)
146-
- [Minor Changes](#minor-changes-19)
151+
- [Minor Changes](#minor-changes-20)
147152
- [Patch Changes](#patch-changes-42)
148153
- [v6.1.1](#v611)
149154
- [Patch Changes](#patch-changes-43)
150155
- [v6.1.0](#v610)
151-
- [Minor Changes](#minor-changes-20)
156+
- [Minor Changes](#minor-changes-21)
152157
- [Patch Changes](#patch-changes-44)
153158
- [v6.0.2](#v602)
154159
- [Patch Changes](#patch-changes-45)
@@ -177,6 +182,32 @@ Date: YYYY-MM-DD
177182
**Full Changelog**: [`v6.X.Y...v6.X.Y`](https://github.com/remix-run/react-router/compare/[email protected]@6.X.Y)
178183
-->
179184

185+
## v6.23.0
186+
187+
Date: 2024-04-23
188+
189+
### What's Changed
190+
191+
#### Data Strategy (unstable)
192+
193+
The new `unstable_dataStrategy` API is a low-level API designed for advanced use-cases where you need to take control over the data strategy for your `loader`/`action` functions. The default implementation is today's behavior, to fetch all loaders in parallel, but this option allows users to implement more advanced data flows including Remix ["Single Fetch"](https://remix.run/docs/guides/single-fetch), user-land middleware/context APIs, automatic loader caching, and more. Please see the [docs](https://reactrouter.com/routers/create-browser-router#unstable_datastrategy) for more information.
194+
195+
**Note:** This is a low-level API intended for advanced use-cases. This overrides React Router's internal handling of `loader`/`action` execution, and if done incorrectly will break your app code. Please use with caution and perform the appropriate testing.
196+
197+
#### Skip Action Error Revalidation (unstable)
198+
199+
Currently, all active `loader`'s revalidate after any `action` submission, regardless of the `action` result. However, in the majority of cases a `4xx`/`5xx` response from an `action` means that no data was actually changed and the revalidation is unnecessary. We've introduced a new `future.unstable_skipActionErrorRevalidation` flag that changes the behavior here, and we plan to make this the default in future version of React Router.
200+
201+
With this flag enabled, `action`'s that return/throw a `4xx`/`5xx` response status will no longer automatically revalidate. If you need to revalidate after a `4xx`/`5xx` result with this flag enabled, you can still do that via returning `true` from `shouldRevalidate` - which now also receives a new `unstable_actionStatus` argument alongside `actionResult` so you can make decision based on the status of the `action` response without having to encode it into the action data.
202+
203+
### Minor Changes
204+
205+
- Add a new `unstable_dataStrategy` configuration option ([#11098](https://github.com/remix-run/react-router/pull/11098), [#11377](https://github.com/remix-run/react-router/pull/11377))
206+
- `@remix-run/router` - Add a new `future.unstable_skipActionRevalidation` future flag ([#11098](https://github.com/remix-run/react-router/pull/11098))
207+
- `@remix-run/router` - SSR: Added a new `skipLoaderErrorBubbling` options to the `staticHandler.query` method to disable error bubbling by the static handler for use in Remix's Single Fetch implementation ([#11098](https://github.com/remix-run/react-router/pull/11098), ([#11377](https://github.com/remix-run/react-router/pull/11377)))
208+
209+
**Full Changelog**: [`v6.22.3...v6.23.0`](https://github.com/remix-run/react-router/compare/[email protected]@6.23.0)
210+
180211
## v6.22.3
181212

182213
Date: 2024-03-07

contributors.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
- abeadam
44
- abhi-kr-2100
55
- AchThomas
6+
- acusti
67
- adamdotjs
78
- adil62
89
- adriananin

docs/hooks/use-navigate.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ new URL("..", window.origin + location.pathname);
109109

110110
// With trailing slashes:
111111
new URL(".", window.origin + location.pathname + "/");
112-
// 'https://remix.run/docs/en/main/start/future-flags/'
112+
// 'https://remix.run/docs/en/main/start/quickstart/'
113113
new URL("..", window.origin + location.pathname + "/");
114114
// 'https://remix.run/docs/en/main/start/'
115115
```

docs/route/should-revalidate.md

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,10 @@ This function allows you opt-out of revalidation for a route's [loader][loader]
3838

3939
There are several instances where data is revalidated, keeping your UI in sync with your data automatically:
4040

41-
- After an [`action`][action] is called from a [`<Form>`][form].
42-
- After an [`action`][action] is called from a [`<fetcher.Form>`][fetcher]
43-
- After an [`action`][action] is called from [`useSubmit`][usesubmit]
44-
- After an [`action`][action] is called from a [`fetcher.submit`][fetcher]
41+
- After an [`action`][action] is called via:
42+
- [`<Form>`][form], [`<fetcher.Form>`][fetcher], [`useSubmit`][usesubmit], or [`fetcher.submit`][fetcher]
43+
- When the `future.unstable_skipActionErrorRevalidation` flag is enabled, `loaders` will not revalidate by default if the `action` returns or throws a 4xx/5xx `Response`
44+
- You can opt-into revalidation for these scenarios via `shouldRevalidate` and the `unstable_actionStatus` parameter
4545
- When an explicit revalidation is triggered via [`useRevalidator`][userevalidator]
4646
- When the [URL params][params] change for an already rendered route
4747
- When the URL Search params change

0 commit comments

Comments
 (0)