MeetUp/src/components/labeled-input.tsx
Dominik Stahl af65e8643b
All checks were successful
container-scan / Container Scan (pull_request) Successful in 6m3s
docker-build / docker (pull_request) Successful in 6m49s
feat: implement credentials login
implements the credentials login functionality
2025-06-11 09:53:01 +02:00

38 lines
818 B
TypeScript

import { Input } from '@/components/ui/input';
import { Label } from '@/components/ui/label';
export default function LabeledInput({
type,
label,
placeholder,
value,
name,
autocomplete,
error,
...rest
}: {
type: 'text' | 'email' | 'password';
label: string;
placeholder?: string;
value?: string;
name?: string;
autocomplete?: string;
error?: string;
} & React.InputHTMLAttributes<HTMLInputElement>) {
return (
<div className='grid grid-cols-1 gap-1'>
<Label htmlFor={name}>{label}</Label>
<Input
type={type}
placeholder={placeholder}
defaultValue={value}
id={name}
name={name}
autoComplete={autocomplete}
{...rest}
/>
{error && <p className='text-red-500 text-sm mt-1'>{error}</p>}
</div>
);
}