Skip to content

Commit f179ce4

Browse files
committed
fix: rerender issue with react 19
1 parent b0e7724 commit f179ce4

File tree

3 files changed

+9
-3
lines changed

3 files changed

+9
-3
lines changed

__tests__/client/index.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,11 +34,16 @@ describe("With SSR", () => {
3434
const ComponentWithHydrationOnDemandClient =
3535
withHydrationOnDemand()(Component);
3636

37-
render(<ComponentWithHydrationOnDemandClient label={clientSideText} />, {
37+
const { rerender, getByText } = render(<ComponentWithHydrationOnDemandClient label={clientSideText} />, {
3838
container: elem,
3939
hydrate: true,
4040
});
4141

42+
expect(getByText(serverSideText)).toBeTruthy();
43+
44+
rerender(<ComponentWithHydrationOnDemandClient label={clientSideText} />);
45+
46+
expect(getByText(serverSideText)).toBeTruthy();
4247
expect(elem).toMatchSnapshot();
4348
});
4449

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-hydration-on-demand",
3-
"version": "2.3.0",
3+
"version": "2.3.1",
44
"description": "Hydrate your React components only when you need to",
55
"main": "dist/index.js",
66
"files": [

src/index.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import React, { useState, useRef, useEffect, useLayoutEffect } from "react";
22
import exenv from "exenv";
33

44
const isClientSide = exenv.canUseDOM;
5+
const EMPTY_CONTENT = { __html: "" };
56

67
const eventListenerOptions = {
78
once: true,
@@ -180,7 +181,7 @@ const withHydrationOnDemandClientSide =
180181
return (
181182
<WrapperComponent
182183
ref={rootRef}
183-
dangerouslySetInnerHTML={{ __html: "" }}
184+
dangerouslySetInnerHTML={EMPTY_CONTENT}
184185
suppressHydrationWarning
185186
{...wrapperPropsRest}
186187
/>

0 commit comments

Comments
 (0)