From d2063580ae3676b40aed5d501781f740278ba36b Mon Sep 17 00:00:00 2001 From: Diego Muracciole Date: Wed, 18 Jan 2017 01:39:46 -0300 Subject: [PATCH 1/4] Add onToggle event to details tag Fixes #8761 --- docs/docs/reference-events.md | 15 ++++++++++++--- .../dom/shared/ReactBrowserEventEmitter.js | 1 + .../dom/shared/eventPlugins/SimpleEventPlugin.js | 2 ++ .../dom/stack/client/ReactDOMComponent.js | 10 ++++++++++ .../shared/shared/event/EventConstants.js | 1 + 5 files changed, 26 insertions(+), 3 deletions(-) diff --git a/docs/docs/reference-events.md b/docs/docs/reference-events.md index 6e275db9b5832..2d79a1adfadae 100644 --- a/docs/docs/reference-events.md +++ b/docs/docs/reference-events.md @@ -286,9 +286,9 @@ number deltaZ Event names: ``` -onAbort onCanPlay onCanPlayThrough onDurationChange onEmptied onEncrypted -onEnded onError onLoadedData onLoadedMetadata onLoadStart onPause onPlay -onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend +onAbort onCanPlay onCanPlayThrough onDurationChange onEmptied onEncrypted +onEnded onError onLoadedData onLoadedMetadata onLoadStart onPause onPlay +onPlaying onProgress onRateChange onSeeked onSeeking onStalled onSuspend onTimeUpdate onVolumeChange onWaiting ``` @@ -338,3 +338,12 @@ string pseudoElement float elapsedTime ``` +* * * + +### Misc Events + +Event names: + +``` +onToggle +``` diff --git a/src/renderers/dom/shared/ReactBrowserEventEmitter.js b/src/renderers/dom/shared/ReactBrowserEventEmitter.js index c92804cd474ba..05121423ed9c6 100644 --- a/src/renderers/dom/shared/ReactBrowserEventEmitter.js +++ b/src/renderers/dom/shared/ReactBrowserEventEmitter.js @@ -138,6 +138,7 @@ var topEventMapping = { topSuspend: 'suspend', topTextInput: 'textInput', topTimeUpdate: 'timeupdate', + topToggle: 'toggle', topTouchCancel: 'touchcancel', topTouchEnd: 'touchend', topTouchMove: 'touchmove', diff --git a/src/renderers/dom/shared/eventPlugins/SimpleEventPlugin.js b/src/renderers/dom/shared/eventPlugins/SimpleEventPlugin.js index 40fe66f11d98e..673a0b071d55a 100644 --- a/src/renderers/dom/shared/eventPlugins/SimpleEventPlugin.js +++ b/src/renderers/dom/shared/eventPlugins/SimpleEventPlugin.js @@ -114,6 +114,7 @@ var topLevelEventsToDispatchConfig: {[key: TopLevelTypes]: DispatchConfig} = {}; 'submit', 'suspend', 'timeUpdate', + 'toggle', 'touchCancel', 'touchEnd', 'touchMove', @@ -180,6 +181,7 @@ var SimpleEventPlugin: PluginModule = { case 'topSubmit': case 'topSuspend': case 'topTimeUpdate': + case 'topToggle': case 'topVolumeChange': case 'topWaiting': // HTML Events diff --git a/src/renderers/dom/stack/client/ReactDOMComponent.js b/src/renderers/dom/stack/client/ReactDOMComponent.js index fbfd8ccf0ad8c..22bbb5d35847d 100644 --- a/src/renderers/dom/stack/client/ReactDOMComponent.js +++ b/src/renderers/dom/stack/client/ReactDOMComponent.js @@ -331,6 +331,15 @@ function trapBubbledEventsLocal() { ), ]; break; + case 'details': + inst._wrapperState.listeners = [ + ReactBrowserEventEmitter.trapBubbledEvent( + 'topToggle', + 'toggle', + node + ), + ]; + break; } } @@ -465,6 +474,7 @@ ReactDOMComponent.Mixin = { case 'object': case 'source': case 'video': + case 'details': this._wrapperState = { listeners: null, }; diff --git a/src/renderers/shared/shared/event/EventConstants.js b/src/renderers/shared/shared/event/EventConstants.js index 385f353385a2a..f338963b770aa 100644 --- a/src/renderers/shared/shared/event/EventConstants.js +++ b/src/renderers/shared/shared/event/EventConstants.js @@ -77,6 +77,7 @@ var topLevelTypes = { topSuspend: null, topTextInput: null, topTimeUpdate: null, + topToggle: null, topTouchCancel: null, topTouchEnd: null, topTouchMove: null, From 662f8a262fa2d1ad3ffa36fe3cb63fc1a479ebdf Mon Sep 17 00:00:00 2001 From: Diego Muracciole Date: Fri, 20 Jan 2017 19:10:29 -0300 Subject: [PATCH 2/4] Map onToggle event on ReactDOMFiberComponent --- src/renderers/dom/fiber/ReactDOMFiberComponent.js | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/renderers/dom/fiber/ReactDOMFiberComponent.js b/src/renderers/dom/fiber/ReactDOMFiberComponent.js index f75c0ad9ebb29..293c14717c15f 100644 --- a/src/renderers/dom/fiber/ReactDOMFiberComponent.js +++ b/src/renderers/dom/fiber/ReactDOMFiberComponent.js @@ -264,6 +264,13 @@ function trapBubbledEventsLocal(node : Element, tag : string) { node ); break; + case 'details': + ReactBrowserEventEmitter.trapBubbledEvent( + 'topToggle', + 'toggle', + node + ); + break; } } From 76efd31c24756951d345882b9eaa2e99e9bda4e1 Mon Sep 17 00:00:00 2001 From: Dan Abramov Date: Thu, 2 Feb 2017 18:20:06 +0000 Subject: [PATCH 3/4] Tweak doc --- docs/docs/reference-events.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/docs/docs/reference-events.md b/docs/docs/reference-events.md index 2d79a1adfadae..faec6dd267c85 100644 --- a/docs/docs/reference-events.md +++ b/docs/docs/reference-events.md @@ -84,6 +84,7 @@ The event handlers below are triggered by an event in the bubbling phase. To reg - [Image Events](#image-events) - [Animation Events](#animation-events) - [Transition Events](#transition-events) +- [Other Events](#other-events) * * * @@ -340,7 +341,7 @@ float elapsedTime * * * -### Misc Events +### Other Events Event names: From 840bc886942ff5206d494dbefd8aa2af85ed4248 Mon Sep 17 00:00:00 2001 From: Diego Muracciole Date: Fri, 3 Feb 2017 01:11:34 -0300 Subject: [PATCH 4/4] Trap events on setInitialProperties for details tag --- src/renderers/dom/fiber/ReactDOMFiberComponent.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/renderers/dom/fiber/ReactDOMFiberComponent.js b/src/renderers/dom/fiber/ReactDOMFiberComponent.js index 293c14717c15f..72b2eaa7fe486 100644 --- a/src/renderers/dom/fiber/ReactDOMFiberComponent.js +++ b/src/renderers/dom/fiber/ReactDOMFiberComponent.js @@ -562,6 +562,7 @@ var ReactDOMFiberComponent = { case 'object': case 'source': case 'video': + case 'details': trapBubbledEventsLocal(domElement, tag); props = rawProps; break;