feat: Animation de progression pendant la déconnexion (v1.2.7)
- Ajout d'un spinner circulaire animé pendant la déconnexion - Rotation fluide avec design violet cohérent - Textes dynamiques "Déconnexion en cours..." pendant le processus - Boutons masqués pour éviter les doubles clics - Transitions en fondu entre icône et spinner - Délais optimisés pour une expérience fluide
This commit is contained in:
56
renderer.js
56
renderer.js
@@ -208,8 +208,21 @@ function showLogoutModal() {
|
||||
};
|
||||
|
||||
const handleConfirm = async () => {
|
||||
modal.classList.remove('active');
|
||||
// Afficher l'animation de déconnexion
|
||||
showLogoutProgress();
|
||||
|
||||
// Attendre un peu pour que l'animation soit visible
|
||||
await new Promise(resolve => setTimeout(resolve, 300));
|
||||
|
||||
// Effectuer la déconnexion
|
||||
await ipcRenderer.invoke('logout');
|
||||
|
||||
// Attendre encore un peu pour une transition fluide
|
||||
await new Promise(resolve => setTimeout(resolve, 500));
|
||||
|
||||
// Réinitialiser et fermer
|
||||
modal.classList.remove('active');
|
||||
hideLogoutProgress();
|
||||
currentAgent = null;
|
||||
currentCentres = [];
|
||||
activeCenter = null;
|
||||
@@ -240,6 +253,47 @@ function showLogoutModal() {
|
||||
document.addEventListener('keydown', handleEscape);
|
||||
}
|
||||
|
||||
// Afficher l'animation de progression de déconnexion
|
||||
function showLogoutProgress() {
|
||||
const modal = document.querySelector('.logout-modal');
|
||||
const icon = document.getElementById('logoutIcon');
|
||||
const spinner = document.getElementById('logoutSpinner');
|
||||
const title = document.getElementById('logoutTitle');
|
||||
const text = document.getElementById('logoutText');
|
||||
const subtitle = document.getElementById('logoutSubtitle');
|
||||
const buttons = document.getElementById('logoutButtons');
|
||||
|
||||
// Masquer l'icône et afficher le spinner
|
||||
icon.style.display = 'none';
|
||||
spinner.style.display = 'block';
|
||||
|
||||
// Mettre à jour les textes
|
||||
title.textContent = 'Déconnexion en cours...';
|
||||
text.textContent = 'Veuillez patienter';
|
||||
subtitle.textContent = 'Fermeture de votre session...';
|
||||
|
||||
// Masquer les boutons
|
||||
buttons.style.display = 'none';
|
||||
}
|
||||
|
||||
// Masquer l'animation de progression de déconnexion
|
||||
function hideLogoutProgress() {
|
||||
const icon = document.getElementById('logoutIcon');
|
||||
const spinner = document.getElementById('logoutSpinner');
|
||||
const title = document.getElementById('logoutTitle');
|
||||
const text = document.getElementById('logoutText');
|
||||
const subtitle = document.getElementById('logoutSubtitle');
|
||||
const buttons = document.getElementById('logoutButtons');
|
||||
|
||||
// Restaurer l'état initial
|
||||
icon.style.display = 'flex';
|
||||
spinner.style.display = 'none';
|
||||
title.textContent = 'Déconnexion';
|
||||
text.textContent = 'Êtes-vous sûr de vouloir vous déconnecter ?';
|
||||
subtitle.textContent = 'Votre session sera fermée et vous devrez vous reconnecter.';
|
||||
buttons.style.display = 'flex';
|
||||
}
|
||||
|
||||
// === GESTION DES PAGES ===
|
||||
function showLoginPage() {
|
||||
document.getElementById('loginPage').classList.add('active');
|
||||
|
||||
Reference in New Issue
Block a user