Skip to content

Commit 617c596

Browse files
authored
feat!: Upgrade to React 19 (#21523)
Removes the React 19 feature flag and always uses React 19.
1 parent 8cba2b9 commit 617c596

File tree

5 files changed

+4
-53
lines changed

5 files changed

+4
-53
lines changed

flow-server/src/main/java/com/vaadin/experimental/FeatureFlags.java

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,6 @@ public class FeatureFlags implements Serializable {
7878
"https://github.com/vaadin/platform/issues/7173", true,
7979
"com.vaadin.flow.component.masterdetaillayout.MasterDetailLayout");
8080

81-
public static final Feature REACT19 = new Feature(
82-
"React 19 (default in Vaadin 25)", "react19",
83-
"https://react.dev/blog/2024/12/05/react-19", true, null);
84-
8581
public static final Feature ACCESSIBLE_DISABLED_BUTTONS = new Feature(
8682
"Accessible disabled buttons", "accessibleDisabledButtons",
8783
"https://github.com/vaadin/web-components/issues/4585", true, null);
@@ -127,7 +123,6 @@ public FeatureFlags(Lookup lookup) {
127123
features.add(new Feature(FLOW_FULLSTACK_SIGNALS));
128124
features.add(new Feature(COPILOT_EXPERIMENTAL));
129125
features.add(new Feature(MASTER_DETAIL_LAYOUT_COMPONENT));
130-
features.add(new Feature(REACT19));
131126
features.add(new Feature(ACCESSIBLE_DISABLED_BUTTONS));
132127
features.add(new Feature(LAYOUT_COMPONENT_IMPROVEMENTS));
133128
features.add(new Feature(DEFAULT_AUTO_RESPONSIVE_FORM_LAYOUT));

flow-server/src/main/java/com/vaadin/flow/server/frontend/NodeUpdater.java

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -307,10 +307,6 @@ Map<String, String> getDefaultDependencies() {
307307
if (options.isReactEnabled()) {
308308
dependencies
309309
.putAll(readDependencies("react-router", "dependencies"));
310-
if (options.getFeatureFlags().isEnabled(FeatureFlags.REACT19)) {
311-
dependencies
312-
.putAll(readDependencies("react19", "dependencies"));
313-
}
314310
} else {
315311
dependencies
316312
.putAll(readDependencies("vaadin-router", "dependencies"));
@@ -377,9 +373,6 @@ Map<String, String> getDefaultDevDependencies() {
377373
if (options.isReactEnabled()) {
378374
defaults.putAll(
379375
readDependencies("react-router", "devDependencies"));
380-
if (options.getFeatureFlags().isEnabled(FeatureFlags.REACT19)) {
381-
defaults.putAll(readDependencies("react19", "devDependencies"));
382-
}
383376
}
384377

385378
return defaults;

flow-server/src/main/resources/com/vaadin/flow/server/frontend/dependencies/react-router/package.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
"private": true,
33
"description": "A list of Flow dependencies when using React router",
44
"dependencies": {
5-
"react": "18.3.1",
6-
"react-dom": "18.3.1",
5+
"react": "19.1.1",
6+
"react-dom": "19.1.1",
77
"react-router": "7.7.1"
88
},
99
"devDependencies": {
10-
"@types/react": "18.3.23",
11-
"@types/react-dom": "18.3.7"
10+
"@types/react": "19.1.9",
11+
"@types/react-dom": "19.1.7"
1212
}
1313
}

flow-server/src/main/resources/com/vaadin/flow/server/frontend/dependencies/react19/package.json

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

flow-server/src/test/java/com/vaadin/flow/server/frontend/NodeUpdaterTest.java

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -145,31 +145,6 @@ public void getDefaultDependencies_includesAllDependencies() {
145145
Assert.assertEquals(expectedDependencies, actualDependendencies);
146146
}
147147

148-
@Test
149-
public void react19UsedWhenFeatureFlagIsOn() {
150-
Map<String, String> react18Deps = nodeUpdater.getDefaultDependencies();
151-
Map<String, String> react18DevDeps = nodeUpdater
152-
.getDefaultDevDependencies();
153-
Mockito.when(options.getFeatureFlags().isEnabled(FeatureFlags.REACT19))
154-
.thenReturn(true);
155-
156-
Map<String, String> react19Deps = nodeUpdater.getDefaultDependencies();
157-
Map<String, String> react19DevDeps = nodeUpdater
158-
.getDefaultDevDependencies();
159-
160-
Assert.assertTrue(react18Deps.get("react").startsWith("18."));
161-
Assert.assertTrue(react18Deps.get("react-dom").startsWith("18."));
162-
Assert.assertTrue(react18DevDeps.get("@types/react").startsWith("18."));
163-
Assert.assertTrue(
164-
react18DevDeps.get("@types/react-dom").startsWith("18."));
165-
166-
Assert.assertTrue(react19Deps.get("react").startsWith("19."));
167-
Assert.assertTrue(react19Deps.get("react-dom").startsWith("19."));
168-
Assert.assertTrue(react19DevDeps.get("@types/react").startsWith("19."));
169-
Assert.assertTrue(
170-
react19DevDeps.get("@types/react-dom").startsWith("19."));
171-
}
172-
173148
@Test
174149
public void getDefaultDevDependencies_includesAllDependencies_whenUsingVite() {
175150
Map<String, String> defaultDeps = nodeUpdater

0 commit comments

Comments
 (0)