From 6b8ee741b313af48b68d36e8cd07857a4c87ef27 Mon Sep 17 00:00:00 2001 From: Tola Leng Date: Sat, 24 Jan 2026 21:16:10 +0700 Subject: [PATCH] Fix server agent ID & token refresh when adding multiple agents (closes #165) --- .../servers/AddServerAgentDialog.tsx | 46 +++++++++---------- 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/application/src/components/servers/AddServerAgentDialog.tsx b/application/src/components/servers/AddServerAgentDialog.tsx index 6556476..8b851d1 100644 --- a/application/src/components/servers/AddServerAgentDialog.tsx +++ b/application/src/components/servers/AddServerAgentDialog.tsx @@ -51,14 +51,33 @@ export const AddServerAgentDialog: React.FC = ({ serverId: `agent_${Math.random().toString(36).substring(2, 15)}${Math.random().toString(36).substring(2, 15)}` }); - const [serverToken, setServerToken] = useState(() => + const [serverToken, setServerToken] = useState(() => `srv_${Math.random().toString(36).substring(2, 15)}${Math.random().toString(36).substring(2, 15)}` ); - - const [serverId, setServerId] = useState(() => + + const [serverId, setServerId] = useState(() => `agent_${Math.random().toString(36).substring(2, 15)}${Math.random().toString(36).substring(2, 15)}` ); + // Refresh credentials and reset form whenever the dialog opens + React.useEffect(() => { + if (open) { + const newCredentials = generateNewCredentials(); + setServerToken(newCredentials.serverToken); + setServerId(newCredentials.serverId); + setActiveTab("configure"); + setFormData({ + serverName: "", + description: "", + osType: "", + checkInterval: "60", + retryAttempt: "3", + dockerEnabled: false, + notificationEnabled: true, + }); + } + }, [open]); + const handleSubmit = async (e: React.FormEvent) => { e.preventDefault(); if (isSubmitting) return; @@ -81,10 +100,6 @@ export const AddServerAgentDialog: React.FC = ({ title: t('serverAgentCreated'), description: t('serverAgentCreatedDesc').replace('{name}', formData.serverName), }); - - const newCredentials = generateNewCredentials(); - setServerToken(newCredentials.serverToken); - setServerId(newCredentials.serverId); setActiveTab("one-click"); onAgentAdded(); } catch (error) { @@ -99,21 +114,6 @@ export const AddServerAgentDialog: React.FC = ({ }; const handleDialogClose = () => { - setActiveTab("configure"); - setFormData({ - serverName: "", - description: "", - osType: "", - checkInterval: "60", - retryAttempt: "3", - dockerEnabled: false, - notificationEnabled: true, - }); - - const newCredentials = generateNewCredentials(); - setServerToken(newCredentials.serverToken); - setServerId(newCredentials.serverId); - onOpenChange(false); }; @@ -126,7 +126,7 @@ export const AddServerAgentDialog: React.FC = ({ {t('addServerMonitoringAgent')} - {t('configureAgentDesc')} + {t('configureAgentDesc')}