Skip to content

Commit 6684b44

Browse files
committed
feat: implement PlugpagEventEmitter for payment event handling and update package version to 1.0.0
1 parent 69cc113 commit 6684b44

File tree

4 files changed

+40
-6
lines changed

4 files changed

+40
-6
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package com.margelo.nitro.plugpagnitro
2+
3+
import com.facebook.react.bridge.*
4+
import com.facebook.react.modules.core.DeviceEventManagerModule
5+
6+
class PlugpagEventEmitter(private val reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
7+
8+
override fun getName(): String {
9+
return "PlugpagEventEmitter"
10+
}
11+
12+
companion object {
13+
private var instance: PlugpagEventEmitter? = null
14+
15+
@JvmStatic
16+
fun setInstance(emitter: PlugpagEventEmitter) {
17+
instance = emitter
18+
}
19+
20+
@JvmStatic
21+
fun emitPaymentEvent(code: Double, message: String) {
22+
instance?.let { emitter ->
23+
val params = Arguments.createMap().apply {
24+
putDouble("code", code)
25+
putString("message", message)
26+
}
27+
28+
emitter.reactApplicationContext
29+
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
30+
.emit("paymentEvent", params)
31+
}
32+
}
33+
}
34+
}

android/src/main/java/com/margelo/nitro/plugpagnitro/PlugpagNitro.kt

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -483,12 +483,10 @@ class PlugpagNitro : HybridPlugpagNitroSpec() {
483483

484484
private fun emitPaymentEvent(code: Double, message: String) {
485485
try {
486-
// For now, we'll just log the events
487-
// In the future, this could be enhanced to emit actual events to React Native
488486
Log.d(TAG, "Payment Event - Code: $code, Message: $message")
489487

490-
// TODO: Implement proper event emission for React Native
491-
// This might require additional bridge setup or using a different approach for Nitro modules
488+
// Emit event using the dedicated event emitter
489+
PlugpagEventEmitter.emitPaymentEvent(code, message)
492490
} catch (e: Exception) {
493491
Log.e(TAG, "Error emitting payment event", e)
494492
}

android/src/main/java/com/margelo/nitro/plugpagnitro/PlugpagNitroPackage.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,9 @@ import com.facebook.react.uimanager.ViewManager
77

88
class PlugpagNitroPackage : ReactPackage {
99
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
10-
return emptyList()
10+
val eventEmitter = PlugpagEventEmitter(reactContext)
11+
PlugpagEventEmitter.setInstance(eventEmitter)
12+
return listOf(eventEmitter)
1113
}
1214

1315
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {

package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "react-native-plugpag-nitro",
3-
"version": "0.2.0",
3+
"version": "1.0.0",
44
"description": "High-performance React Native library for PagSeguro PlugPag payment terminals with TypeScript-first hooks API, real-time events, and 10x faster performance using Nitro Modules",
55
"main": "./lib/module/index.js",
66
"types": "./lib/typescript/src/index.d.ts",

0 commit comments

Comments
 (0)