From 9241ae2148dc922cfdf87c91a7ba99533cde4581 Mon Sep 17 00:00:00 2001 From: Robert Brennan Date: Wed, 25 Sep 2024 12:57:08 -0400 Subject: [PATCH] Fix persistence of "advanced settings" (#4038) --- .../modals/settings/SettingsForm.tsx | 23 +++++++++++++++---- 1 file changed, 18 insertions(+), 5 deletions(-) diff --git a/frontend/src/components/modals/settings/SettingsForm.tsx b/frontend/src/components/modals/settings/SettingsForm.tsx index 12f1fb697b..02fe76e901 100644 --- a/frontend/src/components/modals/settings/SettingsForm.tsx +++ b/frontend/src/components/modals/settings/SettingsForm.tsx @@ -7,6 +7,7 @@ import { I18nKey } from "../../../i18n/declaration"; import { AutocompleteCombobox } from "./AutocompleteCombobox"; import { Settings } from "#/services/settings"; import { organizeModelsAndProviders } from "#/utils/organizeModelsAndProviders"; +import { extractModelAndProvider } from "#/utils/extractModelAndProvider"; import { ModelSelector } from "./ModelSelector"; interface SettingsFormProps { @@ -41,17 +42,29 @@ function SettingsForm({ }: SettingsFormProps) { const { t } = useTranslation(); const { isOpen: isVisible, onOpenChange: onVisibleChange } = useDisclosure(); - const advancedAlreadyInUse = React.useMemo( - () => + const advancedAlreadyInUse = React.useMemo(() => { + const organizedModels = organizeModelsAndProviders(models); + const { provider, model } = extractModelAndProvider( + settings.LLM_MODEL || "", + ); + const isKnownModel = + provider in organizedModels && + organizedModels[provider].models.includes(model); + + return ( !!settings.SECURITY_ANALYZER || !!settings.CONFIRMATION_MODE || !!settings.LLM_BASE_URL || - (!!settings.LLM_MODEL && !models.includes(settings.LLM_MODEL)), - [], - ); + (!!settings.LLM_MODEL && !isKnownModel) + ); + }, [settings, models]); const [enableAdvanced, setEnableAdvanced] = React.useState(advancedAlreadyInUse); + React.useEffect(() => { + setEnableAdvanced(advancedAlreadyInUse); + }, [advancedAlreadyInUse]); + const handleAdvancedChange = (value: boolean) => { setEnableAdvanced(value); };