From 294710b4158a7ff9b954d489f87e4b90623c60f0 Mon Sep 17 00:00:00 2001
From: ValueOn AG
Date: Sun, 1 Mar 2026 09:26:46 +0100
Subject: [PATCH] fix(teamsbot): always save user credentials before session
start, fix SSE reconnect loop, add stop button for pending
Made-with: Cursor
---
.../views/teamsbot/TeamsbotDashboardView.tsx | 37 +++++++------------
.../views/teamsbot/TeamsbotSessionView.tsx | 24 ++++++++----
2 files changed, 30 insertions(+), 31 deletions(-)
diff --git a/src/pages/views/teamsbot/TeamsbotDashboardView.tsx b/src/pages/views/teamsbot/TeamsbotDashboardView.tsx
index 7bf1b88..acabf68 100644
--- a/src/pages/views/teamsbot/TeamsbotDashboardView.tsx
+++ b/src/pages/views/teamsbot/TeamsbotDashboardView.tsx
@@ -35,7 +35,6 @@ export const TeamsbotDashboardView: React.FC = () => {
const [showCredentialForm, setShowCredentialForm] = useState(false);
const [credEmail, setCredEmail] = useState('');
const [credPassword, setCredPassword] = useState('');
- const [saveCredentials, setSaveCredentials] = useState(true);
const [savingCredentials, setSavingCredentials] = useState(false);
// MFA state
@@ -128,20 +127,18 @@ export const TeamsbotDashboardView: React.FC = () => {
return;
}
- // Save credentials if requested (first-time entry)
+ // userAccount with new credentials: always save to DB (backend loads from there)
if (joinMode === 'userAccount' && showCredentialForm && credEmail && credPassword) {
- if (saveCredentials) {
- try {
- setSavingCredentials(true);
- await teamsbotApi.saveUserAccount(instanceId, credEmail, credPassword);
- setUserAccount({ hasSavedCredentials: true, email: credEmail });
- } catch (err: any) {
- setError(err.message || 'Fehler beim Speichern der Zugangsdaten');
- setSavingCredentials(false);
- return;
- } finally {
- setSavingCredentials(false);
- }
+ try {
+ setSavingCredentials(true);
+ await teamsbotApi.saveUserAccount(instanceId, credEmail, credPassword);
+ setUserAccount({ hasSavedCredentials: true, email: credEmail });
+ } catch (err: any) {
+ setError(err.message || 'Fehler beim Speichern der Zugangsdaten');
+ setSavingCredentials(false);
+ return;
+ } finally {
+ setSavingCredentials(false);
}
setShowCredentialForm(false);
}
@@ -373,15 +370,9 @@ export const TeamsbotDashboardView: React.FC = () => {
disabled={savingCredentials}
/>
-
- setSaveCredentials(e.target.checked)}
- />
-
-
+
+ Zugangsdaten werden verschluesselt gespeichert.
+
{userAccount?.hasSavedCredentials && (