import Input from "@/components/Forms/Input";
import InputSelectComponent from "@/components/Forms/InputSelect";
import { useEffect, useState } from "react";

const CfgPendenciaCompras = ({ form, defaultValues }: any) => {
  const [exigirPendenciaCompraMaterial, setExigirPendenciaCompraMaterial] =
    useState(
      Object.keys(form.control._formValues).includes(
        "exigir_pendencia_compra_material_loja"
      )
        ? form.control._formValues?.exigir_pendencia_compra_material_loja
        : defaultValues.exigir_pendencia_compra_material_loja == "1"
    );
  useEffect(() => {
    form.setValue(
      "exigir_pendencia_compra_material_loja",
      exigirPendenciaCompraMaterial
    );
    if (!exigirPendenciaCompraMaterial) {
      form.control.unregister(["pendencia_compra_material_loja"], {
        keepError: false,
        keepValue: false,
      });
      form.setYupSchema((prev: any) => {
        const fields: any = prev.fields;
        delete fields["pendencia_compra_material_loja"];
        prev.fields = fields;
        return prev;
      });
    }
  }, [exigirPendenciaCompraMaterial]);

  return (
    <div>
      <Input
        name="exigir_pendencia_compra_material_loja"
        label="Exigir Pendência de Compra de Kit"
        formulario={form}
        type="checkbox"
        checked={
          Object.keys(form.control._formValues).includes(
            "exigir_pendencia_compra_material_loja"
          )
            ? form.control._formValues?.exigir_pendencia_compra_material_loja
            : defaultValues.exigir_pendencia_compra_material_loja == "1"
        }
        onChange={(e) => {
          setExigirPendenciaCompraMaterial(e.target.checked);
        }}
      />
      {exigirPendenciaCompraMaterial && (
        <InputSelectComponent
          name="pendencia_compra_material_loja"
          label="Pendência de Compras antes de:"
          formulario={form}
          options={[
            // { value: "1", label: "Pré-Apuração de Comissões" },
            { value: "2", label: "Finalização da Venda" },
            ...((
              Object.keys(form.control._formValues).includes(
                "exigir_faturamento_loja"
              )
                ? form.control._formValues?.exigir_faturamento_loja
                : defaultValues.exigir_faturamento_loja == "1"
            )
              ? [
                  {
                    value: "3",
                    label: "Faturamento",
                  },
                ]
              : []),
            { value: "4", label: "Agendamento da Instalação" },
            { value: "5", label: "Entrega do Kit" },
            { value: "6", label: "Engenharia" },
          ]}
          width="w-fit"
          // onChange={(e: any) => {
          //   if (
          //     e.value == defaultValues.pendencia_engenharia_loja ||
          //     e.value == defaultValues.pendencia_faturamento_loja ||
          //     form.control._formValues?.pendencia_engenharia_loja?.value ==
          //       e.value ||
          //     form.control._formValues?.pendencia_faturamento_loja?.value ==
          //       e.value
          //   ) {
          //     form.setValue("pendencia_compra_material_loja", "");
          //     return Swal.fire(
          //       "Atenção",
          //       "A pendência de compras não pode ser a mesma de outra etapa",
          //       "warning"
          //     );
          //   }
          // }}
          skipEffect
          defaultValue={defaultValues.pendencia_compra_material_loja}
          required
          error="Informe antes de que etapa a pendência de compras vai entrar"
        />
      )}
    </div>
  );
};

export default CfgPendenciaCompras;
