42 lines
966 B
TypeScript
42 lines
966 B
TypeScript
import { FC } from "react";
|
|
import { TextField, Autocomplete as AutocompleteInternal } from "@mui/material";
|
|
import { colors } from "../styles/theme";
|
|
|
|
type AutocompleteProps = {
|
|
name: string;
|
|
label: string;
|
|
options: any[];
|
|
formState: Record<string, any>;
|
|
updateFormState: (name: string, value: any) => void;
|
|
disabled?: boolean;
|
|
required?: boolean;
|
|
};
|
|
|
|
export const Autocomplete: FC<AutocompleteProps> = ({
|
|
name,
|
|
label,
|
|
options,
|
|
formState,
|
|
updateFormState,
|
|
disabled = false,
|
|
required = false,
|
|
}) => (
|
|
<AutocompleteInternal
|
|
disablePortal
|
|
options={options}
|
|
value={formState.values[name] || ""}
|
|
onChange={(e: any) => updateFormState?.(name, e.target.id)}
|
|
fullWidth
|
|
size="small"
|
|
renderInput={(params) => (
|
|
<TextField
|
|
{...params}
|
|
name={name}
|
|
label={label}
|
|
disabled={disabled}
|
|
required={required}
|
|
sx={{ backgroundColor: colors.white }}
|
|
/>
|
|
)}
|
|
/>
|
|
);
|