Skip to content

Commit b51e0c1

Browse files
committed
Refactor preset options handling by consolidating URL override option disabling logic directly into EditPresetForm.tsx and removing specialized chatbot option components and hooks
1 parent fa9a9fc commit b51e0c1

9 files changed

Lines changed: 54 additions & 137 deletions

File tree

‎packages/shared/src/constants/chatbots.ts‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ type Chatbot = {
88
supports_thinking_budget?: boolean
99
supports_url_override?: boolean
1010
url_override_label?: string
11+
url_override_disabled_options?: string[]
1112
default_system_instructions?: string
1213
default_top_p?: number
1314
supported_options?: {
@@ -65,6 +66,7 @@ export const CHATBOTS = {
6566
url: 'https://chatgpt.com/',
6667
supports_url_override: true,
6768
url_override_label: 'Project URL',
69+
url_override_disabled_options: ['temporary'],
6870
supported_options: {
6971
temporary: 'Temporary',
7072
thinking: 'Thinking (free plans)'
@@ -151,6 +153,7 @@ export const CHATBOTS = {
151153
url: 'https://chat.mistral.ai/chat',
152154
supports_url_override: true,
153155
url_override_label: 'Project URL',
156+
url_override_disabled_options: ['incognito'],
154157
supported_options: {
155158
incognito: 'Incognito mode',
156159
think: 'Think'

‎packages/vscode/src/views/panel/frontend/components/edit-preset-form/EditPresetForm/EditPresetForm.module.scss‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@
1111
align-items: flex-start;
1212
gap: 4px;
1313
}
14+

‎packages/vscode/src/views/panel/frontend/components/edit-preset-form/EditPresetForm/EditPresetForm.tsx‎

Lines changed: 50 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import { useState, useEffect, useRef, useMemo } from 'react'
22
import cn from 'classnames'
3-
import { useChatgpt } from '../chatbot-hooks'
43
import styles from './EditPresetForm.module.scss'
54
import dropdown_styles from '@ui/components/editor/common/Dropdown/Dropdown.module.scss'
65
import { Preset } from '@shared/types/preset'
@@ -11,8 +10,8 @@ import { Input } from '@ui/components/editor/common/Input'
1110
import { Textarea } from '@ui/components/editor/common/Textarea'
1211
import { Dropdown } from '@ui/components/editor/common/Dropdown'
1312
import { BackendMessage } from '@/views/panel/types/messages'
13+
import { PresetOption } from '@ui/components/editor/panel/PresetOption'
1414
import { Scrollable } from '@ui/components/editor/panel/Scrollable'
15-
import { Options } from '../chatbot-overrides/options'
1615

1716
type Props = {
1817
preset: Preset
@@ -81,7 +80,18 @@ export const EditPresetForm: React.FC<Props> = (props) => {
8180
}
8281
}, [model_info])
8382

84-
useChatgpt({ chatbot, new_url, set_options })
83+
useEffect(() => {
84+
if (!chatbot) return
85+
const chatbot_config = CHATBOTS[chatbot]
86+
87+
if (new_url && chatbot_config.url_override_disabled_options) {
88+
set_options((prev) =>
89+
prev.filter(
90+
(o) => !chatbot_config.url_override_disabled_options!.includes(o)
91+
)
92+
)
93+
}
94+
}, [chatbot, new_url])
8595

8696
const supports_temperature = chatbot_config?.supports_custom_temperature
8797
const supports_top_p = chatbot_config?.default_top_p !== undefined
@@ -353,13 +363,43 @@ export const EditPresetForm: React.FC<Props> = (props) => {
353363
</Field>
354364
)}
355365

356-
<Options
357-
chatbot={chatbot}
358-
model={model}
359-
options={options}
360-
new_url={new_url}
361-
on_option_toggle={handle_option_toggle}
362-
/>
366+
{chatbot &&
367+
Object.keys(chatbot_config?.supported_options || {}).length > 0 && (
368+
<Field label="Options">
369+
<div className={styles.options}>
370+
{Object.entries(chatbot_config!.supported_options!).map(
371+
([key, label]) => {
372+
const is_disabled_by_url_override =
373+
!!new_url &&
374+
chatbot_config!.url_override_disabled_options?.includes(
375+
key
376+
)
377+
378+
if (model_info?.disabled_options?.includes(key)) {
379+
return null
380+
}
381+
return (
382+
<PresetOption
383+
key={key}
384+
label={label as string}
385+
checked={options.includes(key)}
386+
on_change={() => handle_option_toggle(key)}
387+
disabled={is_disabled_by_url_override}
388+
disabled_reason={
389+
is_disabled_by_url_override
390+
? `Not supported with ${
391+
chatbot_config!.url_override_label ||
392+
'Custom URL'
393+
}`
394+
: undefined
395+
}
396+
/>
397+
)
398+
}
399+
)}
400+
</div>
401+
</Field>
402+
)}
363403

364404
{supports_temperature && (
365405
<Field

‎packages/vscode/src/views/panel/frontend/components/edit-preset-form/chatbot-hooks/chatgpt.ts‎

Lines changed: 0 additions & 17 deletions
This file was deleted.

‎packages/vscode/src/views/panel/frontend/components/edit-preset-form/chatbot-hooks/index.ts‎

Lines changed: 0 additions & 1 deletion
This file was deleted.

‎packages/vscode/src/views/panel/frontend/components/edit-preset-form/chatbot-overrides/options/DefaultOptions.tsx‎

Lines changed: 0 additions & 45 deletions
This file was deleted.

‎packages/vscode/src/views/panel/frontend/components/edit-preset-form/chatbot-overrides/options/chatbots/ChatgptOptions.tsx‎

Lines changed: 0 additions & 38 deletions
This file was deleted.

‎packages/vscode/src/views/panel/frontend/components/edit-preset-form/chatbot-overrides/options/index.tsx‎

Lines changed: 0 additions & 17 deletions
This file was deleted.

‎packages/vscode/src/views/panel/frontend/components/edit-preset-form/chatbot-overrides/options/types.ts‎

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)