import { memo } from "react"; import { Input } from "./ui/input"; import { Skeleton } from "./ui/skeleton"; import { LucideIcon } from "lucide-react"; const AppInput = memo(function AppInput({ inputValue, inputOnChange, inputIcon, inputPlaceholder, inputDir, disabled, type, inputTitle, loading, // New prop onKeyDown, className, inputRef, // New prop to forward ref to input inputOnFocus, inputOnBlur, inputTitleFontSize, iconProps, // New prop for icon customization }: { inputValue: string; inputOnChange: (e: React.ChangeEvent) => void; inputIcon?: LucideIcon | string; inputPlaceholder: string; type?: string; inputDir?: string; disabled?: boolean; inputTitle: string; loading?: boolean; // New prop onKeyDown?: (e: React.KeyboardEvent) => void; className?: string; inputRef?: React.RefObject; // New prop type inputOnFocus?: (e: React.FocusEvent) => void; inputOnBlur?: (e: React.FocusEvent) => void; inputTitleFontSize?: string; iconProps?: { size?: number; color?: string; strokeWidth?: number; className?: string; }; // New prop for icon customization }) { return (

{inputTitle}

{loading ? ( // Display skeleton when loading ) : ( )}
); }); export default AppInput;