mirror of
https://github.com/facebook/react-native.git
synced 2025-11-01 09:14:26 +00:00
Support RCTModernEventEmitter+RCTEventEmitter in RequestCloseEvent Event class
Summary: Support RCTModernEventEmitter+RCTEventEmitter in an Event class(es). This improves perf in Fabric. Migrate any constructor callsites to the new constructor and deprecate the previous one. Changelog: [Internal] Reviewed By: PeteTheHeat, mdvacca Differential Revision: D26056714 fbshipit-source-id: 215d8e44d7909f30f4a45f57e5d22a32a635d0ba
This commit is contained in:
committed by
Facebook GitHub Bot
parent
42274b0ba8
commit
583d6229c6
+4
-2
@@ -104,7 +104,8 @@ public class ReactModalHostManager extends ViewGroupManager<ReactModalHostView>
|
||||
public void setIdentifier(ReactModalHostView view, int value) {}
|
||||
|
||||
@Override
|
||||
protected void addEventEmitters(ThemedReactContext reactContext, final ReactModalHostView view) {
|
||||
protected void addEventEmitters(
|
||||
final ThemedReactContext reactContext, final ReactModalHostView view) {
|
||||
final EventDispatcher dispatcher =
|
||||
UIManagerHelper.getEventDispatcherForReactTag(reactContext, view.getId());
|
||||
if (dispatcher != null) {
|
||||
@@ -112,7 +113,8 @@ public class ReactModalHostManager extends ViewGroupManager<ReactModalHostView>
|
||||
new ReactModalHostView.OnRequestCloseListener() {
|
||||
@Override
|
||||
public void onRequestClose(DialogInterface dialog) {
|
||||
dispatcher.dispatchEvent(new RequestCloseEvent(view.getId()));
|
||||
dispatcher.dispatchEvent(
|
||||
new RequestCloseEvent(UIManagerHelper.getSurfaceId(reactContext), view.getId()));
|
||||
}
|
||||
});
|
||||
view.setOnShowListener(
|
||||
|
||||
@@ -7,16 +7,23 @@
|
||||
|
||||
package com.facebook.react.views.modal;
|
||||
|
||||
import androidx.annotation.Nullable;
|
||||
import com.facebook.react.bridge.Arguments;
|
||||
import com.facebook.react.bridge.WritableMap;
|
||||
import com.facebook.react.uimanager.events.Event;
|
||||
import com.facebook.react.uimanager.events.RCTEventEmitter;
|
||||
|
||||
/** {@link Event} for dismissing a Dialog. */
|
||||
/* package */ class RequestCloseEvent extends Event<RequestCloseEvent> {
|
||||
|
||||
public static final String EVENT_NAME = "topRequestClose";
|
||||
|
||||
@Deprecated
|
||||
protected RequestCloseEvent(int viewTag) {
|
||||
super(viewTag);
|
||||
this(-1, viewTag);
|
||||
}
|
||||
|
||||
protected RequestCloseEvent(int surfaceId, int viewTag) {
|
||||
super(surfaceId, viewTag);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -24,8 +31,9 @@ import com.facebook.react.uimanager.events.RCTEventEmitter;
|
||||
return EVENT_NAME;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
@Override
|
||||
public void dispatch(RCTEventEmitter rctEventEmitter) {
|
||||
rctEventEmitter.receiveEvent(getViewTag(), getEventName(), null);
|
||||
protected WritableMap getEventData() {
|
||||
return Arguments.createMap();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user