| import React, { ChangeEvent, FC } from 'react'; | |
| import { Input, Label } from '~/components'; | |
| import { cn, defaultTextPropsLabel, removeFocusOutlines } from '~/utils/'; | |
| import { useLocalize } from '~/hooks'; | |
| interface InputWithLabelProps { | |
| value: string; | |
| onChange: (event: ChangeEvent<HTMLInputElement>) => void; | |
| label: string; | |
| id: string; | |
| } | |
| const InputWithLabel: FC<InputWithLabelProps> = ({ value, onChange, label, id }) => { | |
| const localize = useLocalize(); | |
| return ( | |
| <> | |
| <Label htmlFor={id} className="text-left text-sm font-medium"> | |
| {label} | |
| <br /> | |
| </Label> | |
| <Input | |
| id={id} | |
| data-testid={`input-${id}`} | |
| value={value ?? ''} | |
| onChange={onChange} | |
| placeholder={`${localize('com_endpoint_config_value')} ${label}`} | |
| className={cn( | |
| defaultTextPropsLabel, | |
| 'flex h-10 max-h-10 w-full resize-none px-3 py-2', | |
| removeFocusOutlines, | |
| )} | |
| /> | |
| </> | |
| ); | |
| }; | |
| export default InputWithLabel; | |