import { VSCodeCheckbox } from "@vscode/webview-ui-toolkit/react" import { useEffect, useState } from "react" import { useDebounce } from "react-use" interface TemperatureControlProps { value: number | undefined onChange: (value: number | undefined) => void maxValue?: number // Some providers like OpenAI use 0-2 range } export const TemperatureControl = ({ value, onChange, maxValue = 1 }: TemperatureControlProps) => { const [isCustomTemperature, setIsCustomTemperature] = useState(value !== undefined) const [inputValue, setInputValue] = useState(value) useDebounce(() => onChange(inputValue), 50, [onChange, inputValue]) // Sync internal state with prop changes when switching profiles useEffect(() => { const hasCustomTemperature = value !== undefined setIsCustomTemperature(hasCustomTemperature) setInputValue(value) }, [value]) return ( <>
Higher values make output more random, lower values make it more deterministic.