🛠 1️⃣ Was wurde erfolgreich ausgelagert?

✔ cryptoUtils.ts → Enthält generateKeyAndIV und generateToken​cryptoUtils
✔ useAdminAuth.ts → Enthält decryptToken, useEffect für Login-Status und logoutAdmin​useAdminAuth
✔ useSystemSettings.ts → Verwaltet Redux-Daten und setzt formValues​useSystemSettings
✔ handleAdminLogin.ts → Enthält handleAdminLogin, um die Login-Logik auszulagern​handleAdminLogin
✔ handleClearDatabase.ts → Handhabt das Löschen der Datenbank​handleClearDatabase
✔ handleReboot.ts → Handhabt den Reboot des CPL​handleReboot
✔ handleSetDateTime.ts → Setzt Datum und Uhrzeit für das System​handleSetDateTime
✔ handleSubmit.ts → Verarbeitet Änderungen und sendet sie an den Server​handleSubmit
✔ users.ts → Enthält die USERS-Konfiguration für den Admin​users

🚀 Das bedeutet:

SettingsModal.tsx ist jetzt nur noch für die UI zuständig.
Alle Geschäftslogik (State, API-Aufrufe, Funktionen) wurde sauber in separate Dateien ausgelagert.
Der Code ist jetzt wartungsfreundlicher und wiederverwendbarer.
This commit is contained in:
ISA
2025-02-24 08:52:12 +01:00
parent d901289c8d
commit f544ef3c60
5 changed files with 51 additions and 37 deletions

View File

@@ -20,6 +20,12 @@ function decryptToken(encryptedToken: string) {
export function useAdminAuth(showModal: boolean) {
const [isAdminLoggedIn, setAdminLoggedIn] = useState(false);
function logoutAdmin() {
sessionStorage.removeItem("token");
localStorage.setItem("isAdminLoggedIn", "false");
setAdminLoggedIn(false);
}
useEffect(() => {
if (showModal) {
const token = sessionStorage.getItem("token");
@@ -29,16 +35,15 @@ export function useAdminAuth(showModal: boolean) {
if (Date.now() < exp) {
setAdminLoggedIn(true);
} else {
sessionStorage.removeItem("token");
setAdminLoggedIn(false);
logoutAdmin();
}
} catch (error) {
console.error("Token-Entschlüsselung fehlgeschlagen:", error);
setAdminLoggedIn(false);
logoutAdmin();
}
}
}
}, [showModal]);
return { isAdminLoggedIn, setAdminLoggedIn };
return { isAdminLoggedIn, logoutAdmin };
}