From c7654403a288e248e1c1cdebb147625779809287 Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Wed, 30 Jul 2025 00:38:50 -0400 Subject: [PATCH] Hide Gemini checkboxes on the welcome view --- .../src/components/settings/ApiOptions.tsx | 6 ++- .../components/settings/providers/Gemini.tsx | 45 ++++++++++-------- .../providers/__tests__/Gemini.spec.tsx | 47 +++++++++++++++++++ 3 files changed, 77 insertions(+), 21 deletions(-) diff --git a/webview-ui/src/components/settings/ApiOptions.tsx b/webview-ui/src/components/settings/ApiOptions.tsx index 38d2ceebd37..977822cac3c 100644 --- a/webview-ui/src/components/settings/ApiOptions.tsx +++ b/webview-ui/src/components/settings/ApiOptions.tsx @@ -448,7 +448,11 @@ const ApiOptions = ({ )} {selectedProvider === "gemini" && ( - + )} {selectedProvider === "openai" && ( diff --git a/webview-ui/src/components/settings/providers/Gemini.tsx b/webview-ui/src/components/settings/providers/Gemini.tsx index eadafb81e6a..ec2e19353c3 100644 --- a/webview-ui/src/components/settings/providers/Gemini.tsx +++ b/webview-ui/src/components/settings/providers/Gemini.tsx @@ -12,9 +12,10 @@ import { inputEventTransform } from "../transforms" type GeminiProps = { apiConfiguration: ProviderSettings setApiConfigurationField: (field: keyof ProviderSettings, value: ProviderSettings[keyof ProviderSettings]) => void + fromWelcomeView?: boolean } -export const Gemini = ({ apiConfiguration, setApiConfigurationField }: GeminiProps) => { +export const Gemini = ({ apiConfiguration, setApiConfigurationField, fromWelcomeView }: GeminiProps) => { const { t } = useAppTranslation() const [googleGeminiBaseUrlSelected, setGoogleGeminiBaseUrlSelected] = useState( @@ -73,26 +74,30 @@ export const Gemini = ({ apiConfiguration, setApiConfigurationField }: GeminiPro /> )} - setApiConfigurationField("enableUrlContext", checked)}> - {t("settings:providers.geminiParameters.urlContext.title")} - -
- {t("settings:providers.geminiParameters.urlContext.description")} -
+ {!fromWelcomeView && ( + <> + setApiConfigurationField("enableUrlContext", checked)}> + {t("settings:providers.geminiParameters.urlContext.title")} + +
+ {t("settings:providers.geminiParameters.urlContext.description")} +
- setApiConfigurationField("enableGrounding", checked)}> - {t("settings:providers.geminiParameters.groundingSearch.title")} - -
- {t("settings:providers.geminiParameters.groundingSearch.description")} -
+ setApiConfigurationField("enableGrounding", checked)}> + {t("settings:providers.geminiParameters.groundingSearch.title")} + +
+ {t("settings:providers.geminiParameters.groundingSearch.description")} +
+ + )} ) diff --git a/webview-ui/src/components/settings/providers/__tests__/Gemini.spec.tsx b/webview-ui/src/components/settings/providers/__tests__/Gemini.spec.tsx index cc3f4bd9f04..eaa540c5fb2 100644 --- a/webview-ui/src/components/settings/providers/__tests__/Gemini.spec.tsx +++ b/webview-ui/src/components/settings/providers/__tests__/Gemini.spec.tsx @@ -127,4 +127,51 @@ describe("Gemini", () => { expect(mockSetApiConfigurationField).toHaveBeenCalledWith("enableGrounding", true) }) }) + + describe("fromWelcomeView prop", () => { + it("should hide URL context and grounding checkboxes when fromWelcomeView is true, but keep custom base URL", () => { + render( + , + ) + + // Should still render custom base URL checkbox + expect(screen.getByTestId("checkbox-custom-base-url")).toBeInTheDocument() + // Should not render URL context and grounding checkboxes + expect(screen.queryByTestId("checkbox-url-context")).not.toBeInTheDocument() + expect(screen.queryByTestId("checkbox-grounding-search")).not.toBeInTheDocument() + }) + + it("should show all checkboxes when fromWelcomeView is false", () => { + render( + , + ) + + // Should render all checkboxes + expect(screen.getByTestId("checkbox-custom-base-url")).toBeInTheDocument() + expect(screen.getByTestId("checkbox-url-context")).toBeInTheDocument() + expect(screen.getByTestId("checkbox-grounding-search")).toBeInTheDocument() + }) + + it("should show all checkboxes when fromWelcomeView is undefined (default behavior)", () => { + render( + , + ) + + // Should render all checkboxes (default behavior) + expect(screen.getByTestId("checkbox-custom-base-url")).toBeInTheDocument() + expect(screen.getByTestId("checkbox-url-context")).toBeInTheDocument() + expect(screen.getByTestId("checkbox-grounding-search")).toBeInTheDocument() + }) + }) })