From 71c2bcf1dfd2a6bbd58202c21cc0352e48e00997 Mon Sep 17 00:00:00 2001 From: daniel-lxs Date: Fri, 12 Sep 2025 17:35:40 -0500 Subject: [PATCH] fix: remove provider from useEffect dependencies to prevent re-renders The provider state was being updated inside the effect while also being included in the dependency array, which could cause unnecessary re-renders or potential infinite loops. Fixed by using a local newProvider variable to calculate the correct selected model before updating state. --- .../src/components/settings/ImageGenerationSettings.tsx | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/webview-ui/src/components/settings/ImageGenerationSettings.tsx b/webview-ui/src/components/settings/ImageGenerationSettings.tsx index 6a7fe5b2a0..54aeeacc6b 100644 --- a/webview-ui/src/components/settings/ImageGenerationSettings.tsx +++ b/webview-ui/src/components/settings/ImageGenerationSettings.tsx @@ -60,10 +60,11 @@ export const ImageGenerationSettings = ({ useEffect(() => { setOpenRouterApiKeyLocal(openRouterImageApiKey || "") setGeminiApiKeyLocal(geminiApiKey || "") - setProvider(imageGenerationProvider || "openrouter") - // Calculate selected model directly in the effect + const newProvider = imageGenerationProvider || "openrouter" + setProvider(newProvider) + // Calculate selected model based on the new provider value const newSelectedModel = - provider === "openrouter" + newProvider === "openrouter" ? openRouterImageGenerationSelectedModel || getDefaultModel("openrouter") : geminiImageGenerationSelectedModel || getDefaultModel("gemini") setSelectedModel(newSelectedModel) @@ -73,7 +74,6 @@ export const ImageGenerationSettings = ({ openRouterImageGenerationSelectedModel, geminiImageGenerationSelectedModel, imageGenerationProvider, - provider, ]) // Handle provider change