diff --git a/app/screens/edit_server/index.tsx b/app/screens/edit_server/index.tsx index 03aade6c6..52cd7968e 100644 --- a/app/screens/edit_server/index.tsx +++ b/app/screens/edit_server/index.tsx @@ -57,6 +57,7 @@ const EditServer = ({closeButtonId, componentId, server, theme}: ServerProps) => const [buttonDisabled, setButtonDisabled] = useState(Boolean(!server.displayName)); const [displayNameError, setDisplayNameError] = useState(); const [preauthSecret, setPreauthSecret] = useState(''); + const [initialPreauthSecret, setInitialPreauthSecret] = useState(''); const [preauthSecretError, setPreauthSecretError] = useState(); const [showAdvancedOptions, setShowAdvancedOptions] = useState(false); const [validating, setValidating] = useState(false); @@ -73,6 +74,7 @@ const EditServer = ({closeButtonId, componentId, server, theme}: ServerProps) => const credentials = await getServerCredentials(server.url); const currentPreauthSecret = credentials?.preauthSecret || ''; setPreauthSecret(currentPreauthSecret); + setInitialPreauthSecret(currentPreauthSecret); // Auto-open advanced options if preauth secret exists if (currentPreauthSecret) { @@ -171,11 +173,14 @@ const EditServer = ({closeButtonId, componentId, server, theme}: ServerProps) => return; } - // Validate preauth secret if changed - const isValidServer = await validateServer(); - if (!isValidServer) { - setSaving(false); - return; + // Only validate server connection if preauth secret has changed + const preauthSecretChanged = preauthSecret.trim() !== initialPreauthSecret.trim(); + if (preauthSecretChanged) { + const isValidServer = await validateServer(); + if (!isValidServer) { + setSaving(false); + return; + } } // Save display name @@ -193,7 +198,7 @@ const EditServer = ({closeButtonId, componentId, server, theme}: ServerProps) => } dismissModal({componentId}); - }, [buttonDisabled, displayName, displayNameError, preauthSecretError, server.url, preauthSecret, formatMessage, validateServer, componentId]); + }, [buttonDisabled, displayName, displayNameError, preauthSecretError, server.url, preauthSecret, initialPreauthSecret, formatMessage, validateServer, componentId]); const handleDisplayNameTextChanged = useCallback((text: string) => { setDisplayName(text);