Skip to content

Commit b23e2b4

Browse files
authored
Extract remix logic out of RouterProvider into HydratedRouter (#11469)
1 parent 15c8ed9 commit b23e2b4

File tree

10 files changed

+476
-463
lines changed

10 files changed

+476
-463
lines changed

.changeset/create-remix-router.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"react-router-dom": major
3+
---
4+
5+
Use `createRemixRouter`/`RouterProvider` in `entry.client` instead of `RemixBrowser`

integration/vite-css-test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,15 +45,15 @@ const files = {
4545
"app/entry.client.tsx": js`
4646
import "./entry.client.css";
4747
48-
import { RouterProvider } from "react-router-dom";
48+
import { HydratedRouter } from "react-router-dom";
4949
import { startTransition, StrictMode } from "react";
5050
import { hydrateRoot } from "react-dom/client";
5151
5252
startTransition(() => {
5353
hydrateRoot(
5454
document,
5555
<StrictMode>
56-
<RouterProvider />
56+
<HydratedRouter />
5757
</StrictMode>
5858
);
5959
});

integration/vite-spa-mode-test.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -323,15 +323,15 @@ test.describe("SPA Mode", () => {
323323
</html>
324324
`,
325325
"app/entry.client.tsx": js`
326-
import { RouterProvider } from "react-router-dom";
326+
import { HydratedRouter } from "react-router-dom";
327327
import { startTransition, StrictMode } from "react";
328328
import { hydrateRoot } from "react-dom/client";
329329
330330
startTransition(() => {
331331
hydrateRoot(
332332
document.querySelector("#app"),
333333
<StrictMode>
334-
<RouterProvider />
334+
<HydratedRouter />
335335
</StrictMode>
336336
);
337337
});

packages/react-router-dom/__tests__/ssr/components-test.tsx

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import {
99
Outlet,
1010
RouterProvider,
1111
} from "../../index";
12+
import { HydratedRouter } from "../../ssr/browser";
1213
import { RemixContext } from "../../ssr/components";
1314
import invariant from "../../ssr/invariant";
1415
import { RemixServer } from "../../ssr/server";
@@ -214,7 +215,7 @@ describe("<RemixServer>", () => {
214215
});
215216
});
216217

217-
describe("<RemixBrowser>", () => {
218+
describe("<HydratedRouter>", () => {
218219
it("handles empty default export objects from the compiler", () => {
219220
window.__remixContext = {
220221
url: "/",
@@ -263,7 +264,7 @@ describe("<RemixBrowser>", () => {
263264

264265
jest.spyOn(console, "error");
265266

266-
let { container } = render(<RouterProvider />);
267+
let { container } = render(<HydratedRouter />);
267268

268269
expect(console.error).not.toHaveBeenCalled();
269270
expect(container.innerHTML).toMatch("<h1>Root</h1>");

0 commit comments

Comments
 (0)