Files
imphnen-frontend-service/libs/ui/src/organisms/controlled-field/controlled-input-field.tsx
T
Hafid Nur 3958ae1098 refactor: fix validation for add gacha roll item
- Pisahkan type dan schema untuk gacha roll item
- Perbaiki validasi gacha roll item
- Parsing angka pada component ControlledInputField
- Update type number untuk component Input dan InputField
2025-04-05 07:39:57 +07:00

34 lines
795 B
TypeScript

import {
InputField,
TInputFieldProps,
} from '@imphnen-frontend-service/ui/molecules';
import {
FieldValues,
useController,
UseControllerProps,
} from 'react-hook-form';
export type TControlledInputFieldProps<T extends FieldValues> =
UseControllerProps<T> & TInputFieldProps;
export const ControlledInputField = <T extends FieldValues>(
props: TControlledInputFieldProps<T>
) => {
const { field, fieldState } = useController<T>(props);
const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {
const value =
props.type === 'number' ? Number(e.target.value) : e.target.value;
field.onChange(value);
};
return (
<InputField
error={fieldState.error?.message}
{...props}
{...field}
onChange={handleChange}
/>
);
};