Fix server agent ID & token refresh when adding multiple agents (closes #165)

This commit is contained in:
Tola Leng
2026-01-24 21:16:10 +07:00
parent 370f613080
commit 6b8ee741b3
@@ -51,14 +51,33 @@ export const AddServerAgentDialog: React.FC<AddServerAgentDialogProps> = ({
serverId: `agent_${Math.random().toString(36).substring(2, 15)}${Math.random().toString(36).substring(2, 15)}` 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)}` `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)}` `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) => { const handleSubmit = async (e: React.FormEvent) => {
e.preventDefault(); e.preventDefault();
if (isSubmitting) return; if (isSubmitting) return;
@@ -81,10 +100,6 @@ export const AddServerAgentDialog: React.FC<AddServerAgentDialogProps> = ({
title: t('serverAgentCreated'), title: t('serverAgentCreated'),
description: t('serverAgentCreatedDesc').replace('{name}', formData.serverName), description: t('serverAgentCreatedDesc').replace('{name}', formData.serverName),
}); });
const newCredentials = generateNewCredentials();
setServerToken(newCredentials.serverToken);
setServerId(newCredentials.serverId);
setActiveTab("one-click"); setActiveTab("one-click");
onAgentAdded(); onAgentAdded();
} catch (error) { } catch (error) {
@@ -99,21 +114,6 @@ export const AddServerAgentDialog: React.FC<AddServerAgentDialogProps> = ({
}; };
const handleDialogClose = () => { 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); onOpenChange(false);
}; };
@@ -126,7 +126,7 @@ export const AddServerAgentDialog: React.FC<AddServerAgentDialogProps> = ({
{t('addServerMonitoringAgent')} {t('addServerMonitoringAgent')}
</DialogTitle> </DialogTitle>
<DialogDescription> <DialogDescription>
{t('configureAgentDesc')} {t('configureAgentDesc')}
</DialogDescription> </DialogDescription>
</DialogHeader> </DialogHeader>