* Extract a SyntheticInputEvent for `beforeInput`, based on either native * `textInput` or fallback behavior. * * @return {?object} A SyntheticInputEvent.
(topLevelType, targetInst, nativeEvent, nativeEventTarget)
| 9093 | |
| 9094 | |
| 9095 | function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) { |
| 9096 | var chars; |
| 9097 | |
| 9098 | if (canUseTextInputEvent) { |
| 9099 | chars = getNativeBeforeInputChars(topLevelType, nativeEvent); |
| 9100 | } else { |
| 9101 | chars = getFallbackBeforeInputChars(topLevelType, nativeEvent); |
| 9102 | } // If no characters are being inserted, no BeforeInput event should |
| 9103 | // be fired. |
| 9104 | |
| 9105 | |
| 9106 | if (!chars) { |
| 9107 | return null; |
| 9108 | } |
| 9109 | |
| 9110 | var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget); |
| 9111 | event.data = chars; |
| 9112 | accumulateTwoPhaseDispatches(event); |
| 9113 | return event; |
| 9114 | } |
| 9115 | /** |
| 9116 | * Create an `onBeforeInput` event to match |
| 9117 | * http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents. |
no test coverage detected