2025-05-23 08:41:03 +03:00

48 lines
1.4 KiB
TypeScript

import { cn } from "@/lib/utils"
interface FormTextInputProps {
value: string,
name: string,
onChangeHandler: React.ChangeEventHandler<HTMLInputElement>,
type: "text" | "password" | "email",
children?: React.ReactNode,
className?: string,
placeholder?: string
}
interface FormSubmitInputProps {
name: string,
value: string | undefined,
onSubmitHandler: React.FormEventHandler<HTMLInputElement> | undefined,
children?: React.ReactNode,
className?: string
}
interface FormLabelProps {
name: string,
className?: string,
title?: string
}
const FormLabel = (props: FormLabelProps) => {
let label = (props.title == null) ? props.name.charAt(0).toUpperCase() + props.name.slice(1) : props.title;
return(<label className={cn(props.className)} htmlFor={props.name}>{label}</label>);
}
const FormTextInput = (props: FormTextInputProps) => {
return(
<input className={cn(props.className)} type={props.type} name={props.name} value={props.value} placeholder={props.placeholder} onChange={props.onChangeHandler}></input>
);
}
const FormSubmitInput = (props: FormSubmitInputProps) => {
return(
<input className={cn(props.className)} type="submit" name={props.name} value={props.value} onSubmit={props.onSubmitHandler}>{props.children}</input>
);
}
export {
FormTextInput,
FormSubmitInput,
FormLabel
};