diff --git a/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/ModelSelectionSettings.tsx b/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/ModelSelectionSettings.tsx index bc16aeaa..6c8c53c1 100644 --- a/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/ModelSelectionSettings.tsx +++ b/src/vs/workbench/contrib/void/browser/react/src/void-settings-tsx/ModelSelectionSettings.tsx @@ -10,37 +10,40 @@ import { VoidSelectBox } from '../sidebar-tsx/inputs.js' import { SelectBox } from '../../../../../../../base/browser/ui/selectBox/selectBox.js' -export const ModelSelectionOfFeature = ({ featureName }: { featureName: FeatureName }) => { - +const SelectBoxOfFeature = ({ featureName }: { featureName: FeatureName }) => { const voidSettingsService = useService('settingsStateService') const settingsState = useSettingsState() let weChangedText = false - return <> - {settingsState._modelsList.length === 0 ? - 'Please add a provider!' - : { - if (weChangedText) return - voidSettingsService.setModelSelectionOfFeature(featureName, newVal) - }, [voidSettingsService, featureName])} - // we are responsible for setting the initial state here. always sync instance when state changes. - onCreateInstance={useCallback((instance: SelectBox) => { - const syncInstance = () => { - const modelsListRef = voidSettingsService.state._modelsList // as a ref - const settingsAtProvider = voidSettingsService.state.modelSelectionOfFeature[featureName] - const selectionIdx = settingsAtProvider === null ? -1 : modelsListRef.findIndex(v => modelSelectionsEqual(v.value, settingsAtProvider)) - weChangedText = true - instance.select(selectionIdx === -1 ? 0 : selectionIdx) - weChangedText = false - } - syncInstance() - const disposable = voidSettingsService.onDidChangeState(syncInstance) - return [disposable] - }, [voidSettingsService, featureName])} - />} + return { + if (weChangedText) return + voidSettingsService.setModelSelectionOfFeature(featureName, newVal) + }, [voidSettingsService, featureName])} + // we are responsible for setting the initial state here. always sync instance when state changes. + onCreateInstance={useCallback((instance: SelectBox) => { + const syncInstance = () => { + const modelsListRef = voidSettingsService.state._modelsList // as a ref + const settingsAtProvider = voidSettingsService.state.modelSelectionOfFeature[featureName] + const selectionIdx = settingsAtProvider === null ? -1 : modelsListRef.findIndex(v => modelSelectionsEqual(v.value, settingsAtProvider)) + weChangedText = true + instance.select(selectionIdx === -1 ? 0 : selectionIdx) + weChangedText = false + } + syncInstance() + const disposable = voidSettingsService.onDidChangeState(syncInstance) + return [disposable] + }, [voidSettingsService, featureName])} + /> +} + + +export const ModelSelectionOfFeature = ({ featureName }: { featureName: FeatureName }) => { + const settingsState = useSettingsState() + return <> + {settingsState._modelsList.length === 0 ? 'Please add a provider!' : } } diff --git a/src/vs/workbench/contrib/void/browser/voidSettingsPane.ts b/src/vs/workbench/contrib/void/browser/voidSettingsPane.ts index 7ece62e6..f09b5e63 100644 --- a/src/vs/workbench/contrib/void/browser/voidSettingsPane.ts +++ b/src/vs/workbench/contrib/void/browser/voidSettingsPane.ts @@ -123,7 +123,7 @@ registerAction2(class extends Action2 { }) - +// add to settings gear on bottom left MenuRegistry.appendMenuItem(MenuId.GlobalActivity, { group: '0_command', command: {