@samitouri / QOS-React-2 / commits / 0d7141dd49

[Flare] Fix SSR issue with serializing responders prop (#16227)

Dominic Gannaway committed Jul 26, 2019 at 22:47 UTC 0d7141dd49809c3815aeb6fc257d4dfe2607d317
2 files changed +13 -5
packages/react-dom/src/events/__tests__/DOMEventResponderSystem-test.internal.js
+10
@@ -12,6 +12,7 @@
12 let React;
13 let ReactFeatureFlags;
14 let ReactDOM;
15 +let ReactDOMServer;
16 let ReactTestRenderer;
17
18 // FIXME: What should the public API be for setting an event's priority? Right
@@ -72,6 +73,7 @@ describe('DOMEventResponderSystem', () => {
73 ReactFeatureFlags.enableFlareAPI = true;
74 React = require('react');
75 ReactDOM = require('react-dom');
76 + ReactDOMServer = require('react-dom/server');
77 container = document.createElement('div');
78 document.body.appendChild(container);
79 });
@@ -93,6 +95,14 @@ describe('DOMEventResponderSystem', () => {
95 expect(renderer).toMatchRenderedOutput(<div>Hello world</div>);
96 });
97
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 +
106 it('the event responders should fire on click event', () => {
107 let eventResponderFiredCount = 0;
108 let eventLog = [];
packages/react-dom/src/server/ReactPartialRenderer.js
+3 -5
@@ -346,11 +346,6 @@ const RESERVED_PROPS = {
346 suppressHydrationWarning: null,
347 };
348
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 -
349 function createOpenTagMarkup(
350 tagVerbatim: string,
351 tagLowercase: string,
@@ -365,6 +360,9 @@ function createOpenTagMarkup(
360 if (!hasOwnProperty.call(props, propKey)) {
361 continue;
362 }
363 + if (enableFlareAPI && propKey === 'responders') {
364 + continue;
365 + }
366 let propValue = props[propKey];
367 if (propValue == null) {
368 continue;