@@ -10,6 +10,8 @@ import android.text.style.ForegroundColorSpan
10
10
import android.view.*
11
11
import android.widget.PopupMenu
12
12
import com.facebook.react.bridge.*
13
+ import com.facebook.react.uimanager.UIManagerHelper
14
+ import com.facebook.react.uimanager.events.Event
13
15
import com.facebook.react.uimanager.events.RCTEventEmitter
14
16
import com.facebook.react.views.view.ReactViewGroup
15
17
import java.lang.reflect.Field
@@ -165,14 +167,14 @@ class MenuView(private val mContext: ReactContext): ReactViewGroup(mContext) {
165
167
subMenuItem.setOnMenuItemClickListener {
166
168
if (! it.hasSubMenu()) {
167
169
mIsMenuDisplayed = false
168
- val args: WritableMap = Arguments .createMap()
169
170
if (! subactions.isNull(it.order)) {
170
171
val selectedItem = subactions.getMap(it.order)
171
- args.putString(" event" , selectedItem?.getString(" id" ))
172
- args.putString(" target" , " $id " )
173
- mContext
174
- .getJSModule(RCTEventEmitter ::class .java)
175
- .receiveEvent(id, " onPressAction" , args)
172
+ val dispatcher =
173
+ UIManagerHelper .getEventDispatcherForReactTag(mContext, id)
174
+ val surfaceId: Int = UIManagerHelper .getSurfaceId(this )
175
+ dispatcher?.dispatchEvent(
176
+ MenuOnPressActionEvent (surfaceId, id, selectedItem.getString(" id" ), id)
177
+ )
176
178
}
177
179
true
178
180
} else {
@@ -210,14 +212,14 @@ class MenuView(private val mContext: ReactContext): ReactViewGroup(mContext) {
210
212
menuItem.setOnMenuItemClickListener {
211
213
if (! it.hasSubMenu()) {
212
214
mIsMenuDisplayed = false
213
- val args: WritableMap = Arguments .createMap()
214
215
if (! mActions.isNull(it.order)) {
215
216
val selectedItem = mActions.getMap(it.order)
216
- args.putString(" event" , selectedItem?.getString(" id" ))
217
- args.putString(" target" , " $id " )
218
- mContext
219
- .getJSModule(RCTEventEmitter ::class .java)
220
- .receiveEvent(id, " onPressAction" , args)
217
+ val dispatcher =
218
+ UIManagerHelper .getEventDispatcherForReactTag(mContext, id)
219
+ val surfaceId: Int = UIManagerHelper .getSurfaceId(this )
220
+ dispatcher?.dispatchEvent(
221
+ MenuOnPressActionEvent (surfaceId, id, selectedItem.getString(" id" ), id)
222
+ )
221
223
}
222
224
true
223
225
} else {
0 commit comments