import { Field } from "formik"; import type { FieldProps } from "formik"; import { classNames } from "../../utils"; import { useToggle } from "../../hooks/hooks"; import { EyeIcon, EyeOffIcon } from "@heroicons/react/solid"; import { Switch } from "@headlessui/react"; import { ErrorField } from "./common" interface TextFieldWideProps { name: string; label?: string; help?: string; placeholder?: string; defaultValue?: string; required?: boolean; hidden?: boolean; } export const TextFieldWide = ({ name, label, help, placeholder, defaultValue, required, hidden }: TextFieldWideProps) => ( ) interface PasswordFieldWideProps { name: string; label?: string; placeholder?: string; defaultValue?: string; help?: string; required?: boolean; defaultVisible?: boolean; } export const PasswordFieldWide = ({ name, label, placeholder, defaultValue, help, required, defaultVisible }: PasswordFieldWideProps) => { const [isVisible, toggleVisibility] = useToggle(defaultVisible) return (
{({ field, meta }: FieldProps) => (
{!isVisible ?
)}
{help && (

{help}

)}
) } interface NumberFieldWideProps { name: string; label?: string; help?: string; placeholder?: string; defaultValue?: number; required?: boolean; } export const NumberFieldWide = ({ name, label, placeholder, help, defaultValue, required }: NumberFieldWideProps) => (
{({ field, meta, form }: FieldProps) => ( { form.setFieldValue(field.name, parseInt(e.target.value)) }} className={classNames( meta.touched && meta.error ? "focus:ring-red-500 focus:border-red-500 border-red-500" : "focus:ring-indigo-500 dark:focus:ring-blue-500 focus:border-indigo-500 dark:focus:border-blue-500 border-gray-300 dark:border-gray-700", "block w-full shadow-sm dark:bg-gray-800 sm:text-sm dark:text-white rounded-md" )} placeholder={placeholder} /> )} {help && (

{help}

)}
); interface SwitchGroupWideProps { name: string; label: string; description?: string; defaultValue?: boolean; className?: string; } export const SwitchGroupWide = ({ name, label, description, defaultValue }: SwitchGroupWideProps) => ( )