1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- import React, { forwardRef } from 'react';
- import { Input, TextArea } from './styled';
- type Props = {
- id?: string;
- name?: string;
- onChange?: (val: string) => void;
- onBlur?: () => void;
- value?: string | number;
- defaultValue?: string | number;
- placeholder?: string;
- disabled?: boolean;
- error?: boolean;
- shouldFitContainer?: boolean;
- variant?: 'standard' | 'multiline';
- }
- type Ref = any;
- const TextField = forwardRef<Ref, Props>(({
- variant = 'standard',
- onChange,
- disabled = false,
- ...rest
- }: Props, ref) => {
- const handleChange = (e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>): void => {
- if (onChange && !disabled) {
- onChange(e.target.value);
- }
- };
- return (
- variant === 'standard' ? (
- <Input
- ref={ref}
- onChange={handleChange}
- {...rest}
- />
- ) : (
- <TextArea
- ref={ref}
- onChange={handleChange}
- {...rest}
- />
- )
- );
- });
- export default TextField;
|