package com.volcengine.reactnative.veplayer;

import android.view.View;

import androidx.annotation.NonNull;

import com.facebook.react.bridge.ReactMethod;
import com.facebook.react.common.MapBuilder;
import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.annotations.ReactProp;
import com.volcengine.VolcApiEngine.view.*;

import java.util.Map;

public class VeplayerViewManager extends SimpleViewManager<VeplayerView>
    implements VolcViewManagerInterface<VeplayerView> {
  public static final String NAME = "VeplayerView";

  private ThemedReactContext context;

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

  @NonNull
  @Override
  public VeplayerView createViewInstance(@NonNull ThemedReactContext themedReactContext) {
    this.context = themedReactContext;
    return new VeplayerView(themedReactContext);
  }

  @ReactProp(name = "viewId")
  public void setViewId(VeplayerView view, String viewId) {
    view.setViewId(viewId);
  }

  @ReactProp(name = "kind")
  public void setKind(VeplayerView view, String kind) {
    view.setViewKind(kind);
  }

  @ReactMethod()
  public void setVisible(VeplayerView view, Boolean visible) {
    if (visible) {
      view.setVisibility(View.INVISIBLE);
    } else {
      view.setVisibility(View.VISIBLE);
    }
  }

  public Map getExportedCustomBubblingEventTypeConstants() {
    return MapBuilder.builder().put(
        "vodLoad",
        MapBuilder.of(
            "phasedRegistrationNames",
            MapBuilder.of("bubbled", "onPlayerViewLoad")))
        .build();
  }
}
