package com.coralogix.reactnativesdk.ssl;
import android.util.Log;

import androidx.annotation.NonNull;

import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.ReactContextBaseJavaModule;
import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.modules.core.DeviceEventManagerModule;

public class NetworkInterceptorEmitter extends ReactContextBaseJavaModule {

    public static final String EVENT_NAME = "NetworkInterceptorEvent";
    private static ReactApplicationContext sharedContext = null;

    public NetworkInterceptorEmitter(ReactApplicationContext context) {
        super(context);
        sharedContext = context;
    }

    @NonNull
    @Override
    public String getName() {
        return "NetworkInterceptorEmitter";
    }

    @ReactMethod
    public void addListener(String eventName) {
    }

    @ReactMethod
    public void removeListeners(Integer count) {
    }

    @ReactMethod
    public void ping() {
    }

    public static void emitEvent(WritableMap payload) {
        if (sharedContext != null && sharedContext.hasActiveReactInstance()) {
            sharedContext
                    .getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter.class)
                    .emit(EVENT_NAME, payload);
        } else {
            Log.w("NetworkInterceptorEmitter", "React instance not active. Event dropped: " + payload);
        }
    }
}
