Skip to content

Commit 0d7141d

Browse files
authored
[Flare] Fix SSR issue with serializing responders prop (#16227)
1 parent ed57bf8 commit 0d7141d

File tree

2 files changed

+13
-5
lines changed

2 files changed

+13
-5
lines changed

packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
let React;
1313
let ReactFeatureFlags;
1414
let ReactDOM;
15+
let ReactDOMServer;
1516
let ReactTestRenderer;
1617

1718
// FIXME: What should the public API be for setting an event's priority? Right
@@ -72,6 +73,7 @@ describe('DOMEventResponderSystem', () => {
7273
ReactFeatureFlags.enableFlareAPI = true;
7374
React = require('react');
7475
ReactDOM = require('react-dom');
76+
ReactDOMServer = require('react-dom/server');
7577
container = document.createElement('div');
7678
document.body.appendChild(container);
7779
});
@@ -93,6 +95,14 @@ describe('DOMEventResponderSystem', () => {
9395
expect(renderer).toMatchRenderedOutput(<div>Hello world</div>);
9496
});
9597

98+
it('can render correctly with the ReactDOMServer', () => {
99+
const TestResponder = createEventResponder({});
100+
const output = ReactDOMServer.renderToString(
101+
<div responders={<TestResponder />}>Hello world</div>,
102+
);
103+
expect(output).toBe(`<div data-reactroot="">Hello world</div>`);
104+
});
105+
96106
it('the event responders should fire on click event', () => {
97107
let eventResponderFiredCount = 0;
98108
let eventLog = [];

packages/react-dom/src/server/ReactPartialRenderer.js

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -346,11 +346,6 @@ const RESERVED_PROPS = {
346346
suppressHydrationWarning: null,
347347
};
348348

349-
if (enableFlareAPI) {
350-
// $FlowFixMe: Flow doesn't like this, it's temp until we remove the flag anyway
351-
RESERVED_PROPS.responders = null;
352-
}
353-
354349
function createOpenTagMarkup(
355350
tagVerbatim: string,
356351
tagLowercase: string,
@@ -365,6 +360,9 @@ function createOpenTagMarkup(
365360
if (!hasOwnProperty.call(props, propKey)) {
366361
continue;
367362
}
363+
if (enableFlareAPI && propKey === 'responders') {
364+
continue;
365+
}
368366
let propValue = props[propKey];
369367
if (propValue == null) {
370368
continue;

0 commit comments

Comments
 (0)