37 lines
978 B
TypeScript
37 lines
978 B
TypeScript
interface AdminFormInputProps {
|
|
label: string;
|
|
type?: string;
|
|
value: string;
|
|
onChange: (value: string) => void;
|
|
placeholder?: string;
|
|
required?: boolean;
|
|
className?: string;
|
|
}
|
|
|
|
export default function AdminFormInput({
|
|
label,
|
|
type = 'text',
|
|
value,
|
|
onChange,
|
|
placeholder,
|
|
required = false,
|
|
className = '',
|
|
}: AdminFormInputProps) {
|
|
return (
|
|
<div className={`space-y-2 ${className}`}>
|
|
<label className="block text-sm font-medium text-slate-300">
|
|
{label}
|
|
{required && <span className="text-amber-500 ml-1">*</span>}
|
|
</label>
|
|
<input
|
|
type={type}
|
|
value={value}
|
|
onChange={(e) => onChange(e.target.value)}
|
|
placeholder={placeholder}
|
|
required={required}
|
|
className="w-full px-4 py-3 bg-slate-900 border border-slate-700 rounded-lg text-slate-200 placeholder-slate-500 focus:outline-none focus:ring-2 focus:ring-amber-500 focus:border-transparent"
|
|
/>
|
|
</div>
|
|
);
|
|
}
|