Files
db-studio/frontend/src/components/ui/form/form-select.tsx
2024-07-13 19:15:21 +02:00

35 lines
766 B
TypeScript

import { Select } from "@/components/ui";
import type { ComponentPropsWithoutRef } from "react";
import {
type Control,
type FieldValues,
type UseControllerProps,
useController,
} from "react-hook-form";
type Props<T extends FieldValues> = Omit<
UseControllerProps<T>,
"control" | "defaultValue" | "rules"
> &
Omit<ComponentPropsWithoutRef<typeof Select>, "value" | "onValueChange"> & {
control: Control<T>;
};
export const FormSelect = <T extends FieldValues>({
control,
name,
disabled,
shouldUnregister,
...rest
}: Props<T>) => {
const {
field: { onChange, ...field },
} = useController({
control,
name,
disabled,
shouldUnregister,
});
return <Select {...field} {...rest} onValueChange={onChange} />;
};