package com.helpshift.react;

import androidx.annotation.NonNull;

import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.bridge.WritableMap;
import com.facebook.react.bridge.Arguments;
import com.helpshift.log.HSLogger;
import static com.helpshift.react.HelpshiftUtils.convertMapToWritableMap;

import java.util.List;
import java.util.Map;

abstract class HelpshiftPluginSdkxReactNativeSpec extends NativeHelpshiftPluginSdkxReactNativeSpec {
  public static final String TAG = "HelpshiftPluginSdkxReactNativeSpec";

  HelpshiftPluginSdkxReactNativeSpec(ReactApplicationContext context) {
    super(context);
  }

  @NonNull
  public abstract String getName();

  public void sendEvent(String emitterName, String eventName, Map<String, Object> map) {
    try {
      WritableMap sendData = Arguments.createMap();
      sendData.putString("eventName", eventName);
      sendData.putMap("eventData", convertMapToWritableMap(map));
      emitHelpshiftEvents(sendData);
    } catch(Exception e) {
      HSLogger.e(TAG, "Error while emitting events: " + emitterName + ", event: " + eventName, e);
    }
  }

}
