| import { forwardRef } from 'react'; | |
| import { Input, Label } from '@librechat/client'; | |
| import type { ChangeEvent, FC, Ref } from 'react'; | |
| import { cn, defaultTextPropsLabel, removeFocusOutlines, defaultTextProps } from '~/utils/'; | |
| import { useLocalize } from '~/hooks'; | |
| interface InputWithLabelProps { | |
| id: string; | |
| value: string; | |
| label: string; | |
| subLabel?: string; | |
| onChange: (event: ChangeEvent<HTMLInputElement>) => void; | |
| labelClassName?: string; | |
| inputClassName?: string; | |
| ref?: Ref<HTMLInputElement>; | |
| } | |
| const InputWithLabel: FC<InputWithLabelProps> = forwardRef((props, ref) => { | |
| const { id, value, label, subLabel, onChange, labelClassName = '', inputClassName = '' } = props; | |
| const localize = useLocalize(); | |
| return ( | |
| <> | |
| <div className={cn('mt-4 flex flex-row', labelClassName)}> | |
| <Label htmlFor={id} className="text-left text-sm font-medium"> | |
| {label} | |
| </Label> | |
| {Label && <Label className="mx-1 text-right text-sm text-text-secondary">{subLabel}</Label>} | |
| <br /> | |
| </div> | |
| <div className="h-1" /> | |
| <Input | |
| id={id} | |
| data-testid={`input-${id}`} | |
| value={value ?? ''} | |
| onChange={onChange} | |
| ref={ref} | |
| placeholder={`${localize('com_endpoint_config_value')} ${label}`} | |
| className={cn('flex h-10 max-h-10 w-full resize-none px-3 py-2')} | |
| /> | |
| </> | |
| ); | |
| }); | |
| export default InputWithLabel; | |