48 lines
1.1 KiB
TypeScript
Raw Normal View History

2024-11-09 10:33:07 +00:00
import { Controller, FieldValues } from "react-hook-form";
import { FormFieldBaseProps } from "./utility";
2024-11-09 18:57:36 +00:00
import { Input, TextArea } from "tamagui";
2024-11-09 10:33:07 +00:00
import { ComponentPropsWithoutRef } from "react";
import { ErrorMessage } from "./form";
type InputFieldProps<T extends FieldValues> = FormFieldBaseProps<T> &
ComponentPropsWithoutRef<typeof Input>;
export const InputField = <T extends FieldValues>({
form,
name,
...props
}: InputFieldProps<T>) => (
<Controller
control={form.control}
name={name}
render={({ field, fieldState }) => (
<>
<Input {...field} {...props} />
<ErrorMessage error={fieldState.error} />
</>
)}
/>
);
2024-11-09 18:57:36 +00:00
type TextAreaFieldProps<T extends FieldValues> = FormFieldBaseProps<T> &
ComponentPropsWithoutRef<typeof TextArea>;
export const TextAreaField = <T extends FieldValues>({
form,
name,
...props
}: TextAreaFieldProps<T>) => (
<Controller
control={form.control}
name={name}
render={({ field, fieldState }) => (
<>
<TextArea {...field} {...props} />
<ErrorMessage error={fieldState.error} />
</>
)}
/>
);
2024-11-09 10:33:07 +00:00
export default Input;