From 9632cfa1416e8c113da6e5bd6e5c5ad3de1ec755 Mon Sep 17 00:00:00 2001 From: Felipe Martin <812088+fmartingr@users.noreply.github.com> Date: Mon, 12 Jan 2026 17:45:12 +0100 Subject: [PATCH] fix: do not ping the server on edit if the preauth secret didn't change (#9368) * fix: do not ping the server on edit if the preauth secret didn't change * Update app/screens/edit_server/index.tsx Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- app/screens/edit_server/index.tsx | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) 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);