Spaces:
Configuration error
Configuration error
File size: 1,823 Bytes
610dd27 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
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>
);
}
|