39 lines
809 B
TypeScript
39 lines
809 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>;
|
||
|
|
disabled?: boolean;
|
||
|
|
required?: boolean;
|
||
|
|
};
|
||
|
|
|
||
|
|
export const Autocomplete: FC<AutocompleteProps> = ({
|
||
|
|
name,
|
||
|
|
label,
|
||
|
|
options,
|
||
|
|
formState,
|
||
|
|
disabled = false,
|
||
|
|
required = false,
|
||
|
|
}) => (
|
||
|
|
<AutocompleteInternal
|
||
|
|
disablePortal
|
||
|
|
options={options}
|
||
|
|
defaultValue={formState.values[name]}
|
||
|
|
fullWidth
|
||
|
|
size="small"
|
||
|
|
renderInput={(params) => (
|
||
|
|
<TextField
|
||
|
|
{...params}
|
||
|
|
label={label}
|
||
|
|
disabled={disabled}
|
||
|
|
required={required}
|
||
|
|
sx={{ backgroundColor: colors.white }}
|
||
|
|
/>
|
||
|
|
)}
|
||
|
|
/>
|
||
|
|
);
|