import React from 'react'; import { Box, Typography, FormControl, Select, MenuItem, FormHelperText, InputLabel, } from '@mui/material'; import { Controller, useFormContext } from 'react-hook-form'; import { useTranslation } from 'react-i18next'; export interface SelectOption { value: string | number; label: string; disabled?: boolean; } export interface SelectFormFieldProps { name: string; label: string; options: SelectOption[]; helperText?: string; defaultValue?: string | number; disabled?: boolean; required?: boolean; fullWidth?: boolean; size?: 'small' | 'medium'; displayEmpty?: boolean; emptyLabel?: string; multiple?: boolean; } export const SelectFormField: React.FC = ({ name, label, options, helperText, defaultValue = '', disabled = false, required = false, fullWidth = true, size = 'medium', displayEmpty = true, emptyLabel, multiple = false, }) => { const { control } = useFormContext(); const { t } = useTranslation(); const defaultEmptyLabel = emptyLabel || t('common.pleaseSelect'); return ( {required && *} {label} ( {(error || helperText) && ( {error?.message || helperText} )} )} /> ); };