package com.reactnativepayengine.collect.fields;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import com.facebook.react.bridge.ReactApplicationContext;
import com.facebook.react.uimanager.SimpleViewManager;
import com.facebook.react.uimanager.ThemedReactContext;
import com.facebook.react.uimanager.annotations.ReactProp;
import com.reactnativepayengine.collect.VGSCollectOnCreateViewInstanceListener;
import com.verygoodsecurity.vgscollect.widget.ExpirationDateEditText;
import com.verygoodsecurity.vgscollect.widget.PersonNameEditText;
import com.verygoodsecurity.vgscollect.widget.VGSTextInputLayout;

public class VGSCardHolderNameField extends SimpleViewManager<VGSTextInputLayout> {
  private final VGSCollectOnCreateViewInstanceListener listener;

  private PersonNameEditText editText;
  private VGSTextInputLayout vgsTextInputLayout;

  ReactApplicationContext mCallerContext;

  public VGSCardHolderNameField(VGSCollectOnCreateViewInstanceListener listener, ReactApplicationContext reactContext) {
    this.listener = listener;
    mCallerContext = reactContext;
  }

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

  @NonNull
  @Override
  protected VGSTextInputLayout createViewInstance(@NonNull ThemedReactContext reactContext) {
    vgsTextInputLayout = new VGSTextInputLayout(reactContext);
    vgsTextInputLayout.setHint("Card holder name");
    editText = new PersonNameEditText(reactContext);
    editText.setIsRequired(true);
    editText.setFieldName("card_holder");
    editText.setPadding(10, 0, 10, 0);

    vgsTextInputLayout.addView(editText);

    this.listener.onCreateViewInstance(editText);
    return vgsTextInputLayout;
  }

  @ReactProp(name = "placeholder")
  public void setPlaceholder(VGSTextInputLayout view, @Nullable String placeholder) {
    vgsTextInputLayout.setHint(placeholder);
  }
}
