import React from 'react'; import { cn } from '../../lib/cn'; import { eyeClosed, eyeOpen } from '../../assets/icons/input'; interface inputProps { name?: string; type: 'text' | 'email' | 'password' | 'first_name' | 'number'; error?: string; disabled?: boolean; required?: boolean; label?: string; placeholder?: string; className?: string; inputClassName?: string; onChange: (state: string) => void; defaultState?: string; autocomplete?: string; onKeyDown?: (e: React.KeyboardEvent) => void; } export const Input: React.FC = ({ type = 'text', error = '', // disabled = false, // required = false, label = '', placeholder = '', className = '', inputClassName = '', onChange, defaultState = '', name = '', autocomplete = '', onKeyDown, }) => { const [value, setValue] = React.useState(defaultState); const [visible, setVIsible] = React.useState(type != 'password'); React.useEffect(() => onChange(value), [value]); React.useEffect(() => setValue(defaultState), [defaultState]); return (
{label}
{ setValue(e.target.value); }} onKeyDown={(e: React.KeyboardEvent) => { if (onKeyDown) onKeyDown(e); }} /> {type == 'password' && ( { setVIsible(!visible); }} /> )}
{error}
); };