import {Autocomplete, TextField} from "@mui/material"; import {useRef, useState} from "react"; function AutocompleteStation(params) { const [options, setOptions] = useState([]) const previousController = useRef() function onInputChange(event, value) { if (!value) { setOptions([]) return } if (previousController.current) previousController.current.abort() const controller = new AbortController() const signal = controller.signal previousController.current = controller fetch("/api/core/station/?search=" + value, {signal}) .then(response => response.json()) .then(data => data.results) .then(setOptions) .catch() } return <> x} getOptionKey={option => option.id} getOptionLabel={option => option.name} groupBy={option => getOptionGroup(option)} isOptionEqualToValue={(option, value) => option.id === value.id} renderInput={(params) => } {...params} /> } function getOptionGroup(option) { return option.country } export default AutocompleteStation;