import Input from "@/components/Forms/Input";
import InputGroup from "@/components/Forms/InputGroup";
import InputSelectComponent from "@/components/Forms/InputSelect";
import { listarClassificacoes } from "@/requests/CRUD/Classificacao/listarClassificacoes";
import { GetForm } from "@/utils";
import { useEffect, useState } from "react";
import { FieldValues } from "react-hook-form";

const FormSimultaneidade = ({
  onSubmitFunction,
  defaultValues,
  disabledFields,
  children,
  ...rest
}: any) => {
  const { handleSubmit, ...form } = GetForm();
  const [classificacoes, setClassificacoes] = useState<any[]>([]);

  useEffect(() => {
    listarClassificacoes().then((res) => setClassificacoes(res));
  }, []);

  return (
    <>
      <form onSubmit={handleSubmit(onSubmitFunction)} {...rest}>
        <InputGroup align="center">
          <InputSelectComponent
            name="classificacao_simultaneidade"
            label="Classificação"
            formulario={form}
            options={classificacoes.map((classificacao) => ({
              label: classificacao.nome_classificacao,
              value: classificacao.id_classificacao,
            }))}
            required
            error="Selecione uma Classificação"
            defaultValue={
              defaultValues && defaultValues["classificacao_simultaneidade"]
            }
            skipEffect
          />
          <Input
            formulario={form}
            name="perfil_consumo_simultaneidade"
            label="Perfil de Consumo"
            error="Informe o Perfil de Consumo"
            required
            defaultValue={
              defaultValues && defaultValues["perfil_consumo_simultaneidade"]
            }
            disabled={disabledFields?.some(
              (field: string) => field == "perfil_consumo_simultaneidade"
            )}
          />
          <Input
            formulario={form}
            name="valor_simultaneidade"
            label="Fator de Simultaneidade %"
            mascara="numero"
            error="Preencha a Simultaneidade"
            required
            defaultValue={
              defaultValues && defaultValues["valor_simultaneidade"]
            }
            disabled={disabledFields?.some(
              (field: string) => field == "valor_simultaneidade"
            )}
          />
        </InputGroup>
        {children}
      </form>
    </>
  );
};

export default FormSimultaneidade;
