1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- import React, { forwardRef } from 'react';
- import { Input } 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;
- };
- const InputBox = forwardRef<HTMLInputElement, Props>(
- ({ onChange, disabled = false, ...rest }: Props, ref) => {
- const handleChange = (e: React.ChangeEvent<HTMLInputElement>): void => {
- if (onChange && !disabled) {
- onChange(e.target.value);
- }
- };
- return (
- <Input
- type="text"
- data-testid="input"
- ref={ref}
- disabled={disabled}
- onChange={handleChange}
- {...rest}
- />
- );
- },
- );
- InputBox.defaultProps = {
- id: '',
- name: '',
- onChange: () => {
- // do something
- },
- onBlur: () => {
- // do something
- },
- value: undefined,
- defaultValue: undefined,
- placeholder: '',
- disabled: false,
- error: false,
- shouldFitContainer: false,
- };
- export default InputBox;
|