'use client';
import {
DetailedHTMLProps,
FC,
forwardRef,
SelectHTMLAttributes,
useMemo,
} from 'react';
import { clsx } from 'clsx';
import { useFormContext } from 'react-hook-form';
import interClass from '../helpers/inter.font';
import { RegisterOptions } from 'react-hook-form/dist/types/validator';
import { TranslatedLabel } from '../translation/translated-label';
export const Select: FC<
DetailedHTMLProps<
SelectHTMLAttributes,
HTMLSelectElement
> & {
error?: any;
extraForm?: RegisterOptions;
disableForm?: boolean;
label: string;
name: string;
hideErrors?: boolean;
translationKey?: string;
translationParams?: Record;
}
> = forwardRef((props, ref) => {
const {
label,
className,
hideErrors,
disableForm,
error,
extraForm,
translationKey,
translationParams,
...rest
} = props;
const form = useFormContext();
const err = useMemo(() => {
if (error) return error;
if (!form || !form.formState.errors[props?.name!]) return;
return form?.formState?.errors?.[props?.name!]?.message! as string;
}, [form?.formState?.errors?.[props?.name!]?.message, error]);
return (
{!hideErrors && (
{err || <> >}
)}
);
});