Spaces:
Configuration error
Configuration error
import { useCallback, useState } from "react"; | |
import Select from "react-select"; | |
import { useLiveAPIContext } from "../../contexts/LiveAPIContext"; | |
const options = [ | |
{ value: "audio", label: "audio" }, | |
{ value: "text", label: "text" }, | |
]; | |
export default function ResponseModalitySelector() { | |
const { config, setConfig } = useLiveAPIContext(); | |
const [selectedOption, setSelectedOption] = useState<{ | |
value: string; | |
label: string; | |
} | null>(options[0]); | |
const updateConfig = useCallback( | |
(modality: "audio" | "text" | undefined) => { | |
setConfig({ | |
...config, | |
generationConfig: { | |
...config.generationConfig, | |
responseModalities: modality, | |
}, | |
}); | |
}, | |
[config, setConfig] | |
); | |
return ( | |
<div className="select-group"> | |
<label htmlFor="response-modality-selector">Response modality</label> | |
<Select | |
id="response-modality-selector" | |
className="react-select" | |
classNamePrefix="react-select" | |
styles={{ | |
control: (baseStyles) => ({ | |
...baseStyles, | |
background: "var(--Neutral-15)", | |
color: "var(--Neutral-90)", | |
minHeight: "33px", | |
maxHeight: "33px", | |
border: 0, | |
}), | |
option: (styles, { isFocused, isSelected }) => ({ | |
...styles, | |
backgroundColor: isFocused | |
? "var(--Neutral-30)" | |
: isSelected | |
? "var(--Neutral-20)" | |
: undefined, | |
}), | |
}} | |
defaultValue={selectedOption} | |
options={options} | |
onChange={(e) => { | |
setSelectedOption(e); | |
if (e && (e.value === "audio" || e.value === "text")) { | |
updateConfig(e.value); | |
} | |
}} | |
/> | |
</div> | |
); | |
} | |