package com.noibu.mobile.reactnative import com.facebook.react.bridge.Promise import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.bridge.ReactContextBaseJavaModule import com.facebook.react.bridge.ReactMethod import com.facebook.react.bridge.ReadableMap class NoibuReactNativeModule(private val reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) { override fun getName(): String = NoibuModuleImpl.NAME @ReactMethod fun initialize(config: ReadableMap, promise: Promise) { NoibuModuleImpl.initialize(reactContext, config) { error -> if (error == null) promise.resolve(true) else promise.reject("E_INIT", error) } } @ReactMethod fun enableWebViewTracking(viewTag: Double, promise: Promise) { NoibuModuleImpl.enableWebViewTracking(reactContext, viewTag.toInt()) { error -> if (error == null) promise.resolve(true) else promise.reject("E_WEBVIEW", error) } } @ReactMethod fun trackNavigation(name: String?) = NoibuModuleImpl.trackNavigation(name) @ReactMethod fun addCustomAttribute(name: String, value: String) = NoibuModuleImpl.addCustomAttribute(name, value) @ReactMethod fun addError(message: String, stack: String?) = NoibuModuleImpl.addError(message, stack) @ReactMethod fun recordNetwork(event: ReadableMap) = NoibuModuleImpl.recordNetwork(event) }