Skip to content

Commit fceae42

Browse files
committed
Revert "fix(useOutlet): don't wrap in ContextProvider if no child route (#8483)"
This reverts commit 2b4aed6.
1 parent 2b4aed6 commit fceae42

File tree

2 files changed

+5
-108
lines changed

2 files changed

+5
-108
lines changed

packages/react-router/__tests__/useOutlet-test.tsx

Lines changed: 2 additions & 102 deletions
Original file line numberDiff line numberDiff line change
@@ -28,54 +28,6 @@ describe("useOutlet", () => {
2828

2929
expect(renderer.toJSON()).toBeNull();
3030
});
31-
32-
it("renders the fallback", () => {
33-
function Home() {
34-
let outlet = useOutlet();
35-
return <div>{outlet ? "outlet" : "no outlet"}</div>;
36-
}
37-
38-
let renderer: TestRenderer.ReactTestRenderer;
39-
TestRenderer.act(() => {
40-
renderer = TestRenderer.create(
41-
<MemoryRouter initialEntries={["/home"]}>
42-
<Routes>
43-
<Route path="/home" element={<Home />} />
44-
</Routes>
45-
</MemoryRouter>
46-
);
47-
});
48-
49-
expect(renderer.toJSON()).toMatchInlineSnapshot(`
50-
<div>
51-
no outlet
52-
</div>
53-
`);
54-
});
55-
56-
it("renders the fallback with context provided", () => {
57-
function Home() {
58-
let outlet = useOutlet({ some: "context" });
59-
return <div>{outlet ? "outlet" : "no outlet"}</div>;
60-
}
61-
62-
let renderer: TestRenderer.ReactTestRenderer;
63-
TestRenderer.act(() => {
64-
renderer = TestRenderer.create(
65-
<MemoryRouter initialEntries={["/home"]}>
66-
<Routes>
67-
<Route path="/home" element={<Home />} />
68-
</Routes>
69-
</MemoryRouter>
70-
);
71-
});
72-
73-
expect(renderer.toJSON()).toMatchInlineSnapshot(`
74-
<div>
75-
no outlet
76-
</div>
77-
`);
78-
});
7931
});
8032

8133
describe("when there is a child route", () => {
@@ -103,61 +55,9 @@ describe("useOutlet", () => {
10355
</h1>
10456
`);
10557
});
106-
107-
it("returns an element when no context", () => {
108-
function Home() {
109-
let outlet = useOutlet();
110-
return <div>{outlet ? "outlet" : "no outlet"}</div>;
111-
}
112-
113-
let renderer: TestRenderer.ReactTestRenderer;
114-
TestRenderer.act(() => {
115-
renderer = TestRenderer.create(
116-
<MemoryRouter initialEntries={["/home"]}>
117-
<Routes>
118-
<Route path="/home" element={<Home />}>
119-
<Route index element={<div>index</div>} />
120-
</Route>
121-
</Routes>
122-
</MemoryRouter>
123-
);
124-
});
125-
126-
expect(renderer.toJSON()).toMatchInlineSnapshot(`
127-
<div>
128-
outlet
129-
</div>
130-
`);
131-
});
132-
133-
it("returns an element when context", () => {
134-
function Home() {
135-
let outlet = useOutlet({ some: "context" });
136-
return <div>{outlet ? "outlet" : "no outlet"}</div>;
137-
}
138-
139-
let renderer: TestRenderer.ReactTestRenderer;
140-
TestRenderer.act(() => {
141-
renderer = TestRenderer.create(
142-
<MemoryRouter initialEntries={["/home"]}>
143-
<Routes>
144-
<Route path="/home" element={<Home />}>
145-
<Route index element={<div>index</div>} />
146-
</Route>
147-
</Routes>
148-
</MemoryRouter>
149-
);
150-
});
151-
152-
expect(renderer.toJSON()).toMatchInlineSnapshot(`
153-
<div>
154-
outlet
155-
</div>
156-
`);
157-
});
15858
});
15959

160-
describe("OutletContext when there is no context", () => {
60+
describe("when there is no context", () => {
16161
it("returns null", () => {
16262
function Users() {
16363
return useOutlet();
@@ -198,7 +98,7 @@ describe("useOutlet", () => {
19898
});
19999
});
200100

201-
describe("OutletContext when there is context", () => {
101+
describe("when there is context", () => {
202102
it("returns the context", () => {
203103
function Users() {
204104
return useOutlet([

packages/react-router/index.tsx

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -579,12 +579,9 @@ export function useOutletContext<Context = unknown>(): Context {
579579
*/
580580
export function useOutlet(context?: unknown): React.ReactElement | null {
581581
let outlet = React.useContext(RouteContext).outlet;
582-
if (outlet) {
583-
return (
584-
<OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>
585-
);
586-
}
587-
return outlet;
582+
return (
583+
<OutletContext.Provider value={context}>{outlet}</OutletContext.Provider>
584+
);
588585
}
589586

590587
/**

0 commit comments

Comments
 (0)