import React from "react"; import { twMerge } from "tailwind-merge"; import { IconDefinition } from "@fortawesome/pro-solid-svg-icons"; import { FontAwesomeIcon } from "@fortawesome/react-fontawesome"; import { Label, H6 } from "./Typography"; import { kebabCase } from "~/utilities"; import { disableHotkeyInput, enableHotkeyInput, DomLevels, } from "~/pages/PageEnigma/store"; interface InputProps extends React.InputHTMLAttributes { inputClassName?: string; label?: string; icon?: IconDefinition; isError?: boolean; errorMessage?: string; } export const Input = React.forwardRef( ( { label, icon, inputClassName, className, id, isError, onBlur, onFocus, errorMessage, ...rest }: InputProps, ref: React.ForwardedRef, ) => { return (
{label && }
{icon && ( )} ) => { if (onFocus) { onFocus(e); } disableHotkeyInput(DomLevels.INPUT); }} onBlur={(e: React.FocusEvent) => { if (onBlur) { onBlur(e); } enableHotkeyInput(DomLevels.INPUT); }} {...rest} /> {errorMessage && (
{errorMessage}
)}
); }, ); Input.displayName = "Input";