From d5dffd3ca1e11d396bc39e5aa8550ed0fb622354 Mon Sep 17 00:00:00 2001 From: omaroughriss Date: Tue, 30 Sep 2025 17:52:14 +0200 Subject: [PATCH] Add auth handlers --- app/dashboard/folders/page.tsx | 69 ++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/app/dashboard/folders/page.tsx b/app/dashboard/folders/page.tsx index 8dc2b4c..e640fc7 100644 --- a/app/dashboard/folders/page.tsx +++ b/app/dashboard/folders/page.tsx @@ -716,6 +716,75 @@ export default function FoldersPage() { setTimeout(() => setNotification(null), 3000) } + // 4NK Authentication handlers + const handleLogin = useCallback(() => { + setShowAuthModal(true); + }, []); + + const handleLogout = useCallback(() => { + UserStore.getInstance().disconnect(); + setIsConnected(false); + setProcesses(null); + setMyProcesses([]); + setUserPairingId(null); + + // Émettre un événement pour vider les messages locaux + EventBus.getInstance().emit('CLEAR_CONSOLE'); + + showNotification("info", "Déconnexion réussie"); + }, []); + + const handleAuthConnect = useCallback(() => { + setShowAuthModal(false); + console.log('Auth Connect - Connexion établie, le useEffect se chargera de récupérer le userPairingId'); + showNotification("success", "Connexion 4NK réussie"); + }, []); + + const handleAuthClose = useCallback(() => { + setShowAuthModal(false); + }, []); + + // Debug function pour forcer la récupération du userPairingId + const handleForceGetPairingId = useCallback(() => { + console.log('Force récupération userPairingId - État actuel:', { + isConnected, + userPairingId, + userStoreConnected: UserStore.getInstance().isConnected(), + userStorePairingId: UserStore.getInstance().getUserPairingId() + }); + + // D'abord essayer de synchroniser depuis UserStore + const userStorePairingId = UserStore.getInstance().getUserPairingId(); + if (userStorePairingId) { + console.log('Force - Synchronisation depuis UserStore:', userStorePairingId); + setUserPairingId(userStorePairingId); + showNotification("success", `UserPairingId synchronisé: ${userStorePairingId.substring(0, 8)}...`); + return; + } + + // Sinon récupérer depuis MessageBus + if (isConnected) { + const messageBus = MessageBus.getInstance(iframeUrl); + messageBus.isReady().then(() => { + console.log('Force - MessageBus prêt'); + messageBus.getUserPairingId().then((retrievedPairingId: string) => { + console.log('Force - UserPairingId récupéré:', retrievedPairingId); + UserStore.getInstance().pair(retrievedPairingId); + setUserPairingId(retrievedPairingId); + showNotification("success", `UserPairingId récupéré: ${retrievedPairingId.substring(0, 8)}...`); + }).catch((error) => { + console.error('Force - Erreur récupération userPairingId:', error); + showNotification("error", "Erreur lors de la récupération du userPairingId"); + }); + }).catch((error) => { + console.error('Force - Erreur MessageBus isReady:', error); + showNotification("error", "MessageBus non prêt"); + }); + } else { + showNotification("error", "Vous devez être connecté à 4NK"); + } + }, [isConnected, userPairingId, iframeUrl]); + // Fonction pour envoyer une notification dans le chat du dossier const sendFolderChatNotification = (folderId: string, message: string, actionType: string) => { const folderUsers = users.filter((user) => user.folderRoles[folderId])