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.
This commit is contained in:
daniel-lxs 2025-09-12 17:35:40 -05:00 committed by Hannes Rudolph
parent 70c769535c
commit 71c2bcf1df

View file

@ -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