diff --git a/src/app/settings/page.tsx b/src/app/settings/page.tsx index 30f5bcd93..89b83d894 100644 --- a/src/app/settings/page.tsx +++ b/src/app/settings/page.tsx @@ -2939,8 +2939,15 @@ function UserAIProviderSubsection() { useEffect(() => { if (!data) return; + // Sync-from-server pattern: form draft state is initialised from the + // fetched user record. Could be reworked into a derived-state approach, + // but that's a non-trivial refactor of this monolithic settings page — + // tracked for the 1.4.0 settings split. + // eslint-disable-next-line react-hooks/set-state-in-effect setProvider(data.provider ?? ""); + // eslint-disable-next-line react-hooks/set-state-in-effect setModel(data.model ?? ""); + // eslint-disable-next-line react-hooks/set-state-in-effect setBaseUrl(data.baseUrl ?? ""); }, [data]); diff --git a/src/components/ui/password-strength.tsx b/src/components/ui/password-strength.tsx index 9f539d7ab..0c1421844 100644 --- a/src/components/ui/password-strength.tsx +++ b/src/components/ui/password-strength.tsx @@ -37,6 +37,7 @@ export function PasswordStrength({ useEffect(() => { if (!password) { + // eslint-disable-next-line react-hooks/set-state-in-effect setResult(null); return; }