From 9d5e6a2082f94b5996b4f9ea3ba6197ac1b42bbe Mon Sep 17 00:00:00 2001 From: sam hoang Date: Sun, 19 Jan 2025 00:34:05 +0700 Subject: [PATCH] fix ui and some error my has --- .../src/components/settings/ApiOptions.tsx | 223 ++++++++++-------- 1 file changed, 126 insertions(+), 97 deletions(-) diff --git a/webview-ui/src/components/settings/ApiOptions.tsx b/webview-ui/src/components/settings/ApiOptions.tsx index 9fbb6d8..a9ec8d5 100644 --- a/webview-ui/src/components/settings/ApiOptions.tsx +++ b/webview-ui/src/components/settings/ApiOptions.tsx @@ -166,7 +166,11 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) = onChange={(checked: boolean) => { setAnthropicBaseUrlSelected(checked) if (!checked) { - setApiConfiguration({ ...apiConfiguration, anthropicBaseUrl: "" }) + handleInputChange("anthropicBaseUrl")({ + target: { + value: "", + }, + }) } }}> Use custom base URL @@ -537,7 +541,11 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) = onChange={(checked: boolean) => { setAzureApiVersionSelected(checked) if (!checked) { - setApiConfiguration({ ...apiConfiguration, azureApiVersion: "" }) + handleInputChange("azureApiVersion")({ + target: { + value: "", + }, + }) } }}> Set Azure API version @@ -552,31 +560,47 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) = )} {/* Model Info Configuration */} -
+
- Model Configuration -

+ Model Configuration +

Configure the capabilities and pricing for your custom OpenAI-compatible model

{/* Capabilities Section */}
- Capabilities
{ const value = parseInt(e.target.value) - setApiConfiguration({ - ...apiConfiguration, - openAiCusModelInfo: { - ...(apiConfiguration?.openAiCusModelInfo || openAiModelInfoSaneDefaults), - maxTokens: isNaN(value) ? undefined : value - } + handleInputChange("openAiCusModelInfo")({ + target: { + value: { + ...(apiConfiguration?.openAiCusModelInfo || + openAiModelInfoSaneDefaults), + maxTokens: isNaN(value) ? undefined : value, + }, + }, }) }} placeholder="e.g. 4096"> @@ -584,18 +608,29 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) = { const parsed = parseInt(e.target.value) - setApiConfiguration({ - ...apiConfiguration, - openAiCusModelInfo: { - ...(apiConfiguration?.openAiCusModelInfo || openAiModelInfoSaneDefaults), - contextWindow: e.target.value === "" ? undefined : (isNaN(parsed) ? openAiModelInfoSaneDefaults.contextWindow : parsed) - } + handleInputChange("openAiCusModelInfo")({ + target: { + value: { + ...(apiConfiguration?.openAiCusModelInfo || + openAiModelInfoSaneDefaults), + contextWindow: + e.target.value === "" + ? undefined + : isNaN(parsed) + ? openAiModelInfoSaneDefaults.contextWindow + : parsed, + }, + }, }) }} placeholder="e.g. 128000"> @@ -603,58 +638,83 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) =
- { - setApiConfiguration({ - ...apiConfiguration, - openAiCusModelInfo: { - ...(apiConfiguration?.openAiCusModelInfo || openAiModelInfoSaneDefaults), - supportsImages: e.target.checked - } + onChange={(checked: boolean) => { + handleInputChange("openAiCusModelInfo")({ + target: { + value: { + ...(apiConfiguration?.openAiCusModelInfo || + openAiModelInfoSaneDefaults), + supportsImages: checked, + }, + }, }) }}> Supports Images - + - { - setApiConfiguration({ - ...apiConfiguration, - openAiCusModelInfo: { - ...(apiConfiguration?.openAiCusModelInfo || openAiModelInfoSaneDefaults), - supportsComputerUse: e.target.checked - } + onChange={(checked: boolean) => { + handleInputChange("openAiCusModelInfo")({ + target: { + value: { + ...(apiConfiguration?.openAiCusModelInfo || + openAiModelInfoSaneDefaults), + supportsComputerUse: checked, + }, + }, }) }}> Supports Computer Use - +
{/* Pricing Section */}
- Pricing (USD per million tokens) + + Pricing (USD per million tokens) +
{/* Input/Output Prices */}
{ const parsed = parseFloat(e.target.value) - setApiConfiguration({ - ...apiConfiguration, - openAiCusModelInfo: { - ...(apiConfiguration?.openAiCusModelInfo || openAiModelInfoSaneDefaults), - inputPrice: e.target.value === "" ? undefined : (isNaN(parsed) ? openAiModelInfoSaneDefaults.inputPrice : parsed) - } + handleInputChange("openAiCusModelInfo")({ + target: { + value: { + ...(apiConfiguration?.openAiCusModelInfo ?? + openAiModelInfoSaneDefaults), + inputPrice: + e.target.value === "" + ? undefined + : isNaN(parsed) + ? openAiModelInfoSaneDefaults.inputPrice + : parsed, + }, + }, }) }} placeholder="e.g. 0.0001"> @@ -662,71 +722,40 @@ const ApiOptions = ({ apiErrorMessage, modelIdErrorMessage }: ApiOptionsProps) = { const parsed = parseFloat(e.target.value) - setApiConfiguration({ - ...apiConfiguration, - openAiCusModelInfo: { - ...(apiConfiguration?.openAiCusModelInfo || openAiModelInfoSaneDefaults), - outputPrice: e.target.value === "" ? undefined : (isNaN(parsed) ? openAiModelInfoSaneDefaults.outputPrice : parsed) - } + handleInputChange("openAiCusModelInfo")({ + target: { + value: { + ...(apiConfiguration?.openAiCusModelInfo || + openAiModelInfoSaneDefaults), + outputPrice: + e.target.value === "" + ? undefined + : isNaN(parsed) + ? openAiModelInfoSaneDefaults.outputPrice + : parsed, + }, + }, }) }} placeholder="e.g. 0.0002"> Output Price
- - {/* Cache Prices */} -
- { - const parsed = parseFloat(e.target.value) - setApiConfiguration({ - ...apiConfiguration, - openAiCusModelInfo: { - ...(apiConfiguration?.openAiCusModelInfo || openAiModelInfoSaneDefaults), - cacheWritesPrice: e.target.value === "" ? undefined : (isNaN(parsed) ? openAiModelInfoSaneDefaults.cacheWritesPrice : parsed) - } - }) - }} - placeholder="e.g. 0.0001"> - Cache Write Price - - - { - const parsed = parseFloat(e.target.value) - setApiConfiguration({ - ...apiConfiguration, - openAiCusModelInfo: { - ...(apiConfiguration?.openAiCusModelInfo || openAiModelInfoSaneDefaults), - cacheReadsPrice: e.target.value === "" ? undefined : (isNaN(parsed) ? openAiModelInfoSaneDefaults.cacheReadsPrice : parsed) - } - }) - }} - placeholder="e.g. 0.00001"> - Cache Read Price - -
- { /* TODO: model info here */} - + {/* TODO: model info here */}