import _variants from "@/components/ui/button/_variants";
import { NewUserSchema } from "@/schemas/user/_newUser";
import { FormBuilderElement } from "@/types/app-component-formbuilder";
import { faSliders } from "@fortawesome/free-solid-svg-icons";

type Field = FormBuilderElement<NewUserSchema, typeof _variants>;

export default function newUserFormFields({
  dict,
  handleTogglePermissionsSection,
  isPending,
  closeModal,
}: NewUserFormFields) {
  return [
    {
      name: "name",
      type: "text",
      className: "w-full",
      label: dict.pages.users.form.new.fields.name.label,
      errors: dict.pages.users.form.new.fields.name.errors,
    },
    {
      name: "email",
      type: "email",
      className: "w-full",
      label: dict.pages.users.form.new.fields.email.label,
      required: true,
      errors: dict.pages.users.form.new.fields.email.errors,
    },
    {
      type: "group",
      className: "w-full flex justify-between gap-2 items-end",
      fields: [
        {
          type: "text",
          name: "permissions",
          disabled: true,
          label: dict.pages.users.form.new.permissions,
          required: true,
        },
        {
          type: "button",
          decorator: faSliders,
          tooltip: dict.pages.general.open,
          onClick: handleTogglePermissionsSection,
        },
      ],
    },
    {
      type: "group",
      className: "w-full flex justify-end gap-2",
      fields: [
        {
          type: "button",
          label: dict.pages.general.cancel,
          variant: "solid",
          color: "danger",
          onClick: () => closeModal("new-user-form"),
        },
        {
          type: "submit",
          label: dict.pages.general.create,
          variant: "solid",
          color: "primary",
          disabled: isPending,
        },
      ],
    },
  ] as Field[];
}
