import {ReactElement} from "react" import {useTranslation} from "react-i18next" import { FormControl, FormHelperText, InputAdornment, InputLabel, MenuItem, Select, } from "@mui/material" import {useUser} from "~/hooks" import {User} from "~/server-types" export interface SelectFieldProps { label: string formik: any name: string valueTextMap?: Record icon?: ReactElement } export default function SelectField({ label, formik, icon, name, valueTextMap: parentValueTextMap, }: SelectFieldProps): ReactElement { const user = useUser() const {t} = useTranslation(["components", "aliases"]) const BOOLEAN_SELECT_TEXT_MAP: Record = { true: t("SelectField.values.true"), false: t("SelectField.values.false"), } const valueTextMap = parentValueTextMap ?? BOOLEAN_SELECT_TEXT_MAP const labelId = `${name}-label` const preferenceName = `alias${name.charAt(0).toUpperCase() + name.slice(1)}` const value = user.preferences[preferenceName as keyof User["preferences"]] const defaultValueText = valueTextMap[value.toString()] return ( {label} {formik.touched[name] && formik.errors[name]} ) }