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

Bug fix for issue 5202

Anto committed Mar 9, 2016 at 19:16 UTC 0fb1cd61e1bf2e96a03376dd49748c62d1dfce1e
4 files changed +34 -1
src/renderers/dom/client/ReactBrowserEventEmitter.js
+14 -1
@@ -287,7 +287,8 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {
287 );
288 }
289 } else if (dependency === topLevelTypes.topFocus ||
290 - dependency === topLevelTypes.topBlur) {
290 + dependency === topLevelTypes.topBlur || dependency === topLevelTypes.topFocusIn ||
291 + dependency === topLevelTypes.topFocusOut) {
292
293 if (isEventSupported('focus', true)) {
294 ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(
@@ -295,6 +296,16 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {
296 'focus',
297 mountAt
298 );
299 + ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(
300 + topLevelTypes.topFocusIn,
301 + 'focusin',
302 + mountAt
303 + );
304 + ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(
305 + topLevelTypes.topFocusOut,
306 + 'focusout',
307 + mountAt
308 + );
309 ReactBrowserEventEmitter.ReactEventListener.trapCapturedEvent(
310 topLevelTypes.topBlur,
311 'blur',
@@ -318,6 +329,8 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, {
329 // to make sure blur and focus event listeners are only attached once
330 isListening[topLevelTypes.topBlur] = true;
331 isListening[topLevelTypes.topFocus] = true;
332 + isListening[topLevelTypes.topFocusIn] = true;
333 + isListening[topLevelTypes.topFocusOut] = true;
334 } else if (topEventMapping.hasOwnProperty(dependency)) {
335 ReactBrowserEventEmitter.ReactEventListener.trapBubbledEvent(
336 dependency,
src/renderers/dom/client/eventPlugins/ChangeEventPlugin.js
+2
@@ -37,6 +37,8 @@ var eventTypes = {
37 topLevelTypes.topChange,
38 topLevelTypes.topClick,
39 topLevelTypes.topFocus,
40 + topLevelTypes.topFocusIn,
41 + topLevelTypes.topFocusOut,
42 topLevelTypes.topInput,
43 topLevelTypes.topKeyDown,
44 topLevelTypes.topKeyUp,
src/renderers/dom/client/eventPlugins/SimpleEventPlugin.js
+16
@@ -191,6 +191,18 @@ var eventTypes = {
191 captured: keyOf({onFocusCapture: true}),
192 },
193 },
194 + focusOut: {
195 + phasedRegistrationNames: {
196 + bubbled: keyOf({onFocusOut: true}),
197 + captured: keyOf({onFocusOutCapture: true}),
198 + },
199 + },
200 + focusIn: {
201 + phasedRegistrationNames: {
202 + bubbled: keyOf({onFocusIn: true}),
203 + captured: keyOf({onFocusInCapture: true}),
204 + },
205 + },
206 input: {
207 phasedRegistrationNames: {
208 bubbled: keyOf({onInput: true}),
@@ -438,6 +450,8 @@ var topLevelEventsToDispatchConfig = {
450 topEnded: eventTypes.ended,
451 topError: eventTypes.error,
452 topFocus: eventTypes.focus,
453 + topFocusOut: eventTypes.focusOut,
454 + topFocusIn: eventTypes.focusIn,
455 topInput: eventTypes.input,
456 topInvalid: eventTypes.invalid,
457 topKeyDown: eventTypes.keyDown,
@@ -545,6 +559,8 @@ var SimpleEventPlugin = {
559 break;
560 case topLevelTypes.topBlur:
561 case topLevelTypes.topFocus:
562 + case topLevelTypes.topFocusIn:
563 + case topLevelTypes.topFocusOut:
564 EventConstructor = SyntheticFocusEvent;
565 break;
566 case topLevelTypes.topClick:
src/renderers/shared/event/EventConstants.js
+2
@@ -49,6 +49,8 @@ var topLevelTypes = keyMirror({
49 topEnded: null,
50 topError: null,
51 topFocus: null,
52 + topFocusIn: null,
53 + topFocusOut: null,
54 topInput: null,
55 topInvalid: null,
56 topKeyDown: null,