diff --git a/src/pages/chat/chat.ts b/src/pages/chat/chat.ts index 37d3c05..15be721 100755 --- a/src/pages/chat/chat.ts +++ b/src/pages/chat/chat.ts @@ -229,27 +229,26 @@ class ChatElement extends HTMLElement { const memberEmoji = await addressToEmoji(memberId); // Obtenir le processus et le rôle - const groupItem = this.shadowRoot?.querySelector('[data-process-id]'); - const processId = groupItem?.getAttribute('data-process-id'); + const processId = this.getAttribute('process-id'); const processEmoji = processId ? await addressToEmoji(processId) : '📝'; // Trouver le rôle du membre const member = this.allMembers.find(m => String(m.id) === memberId); - const role = member?.roleName || 'Member'; + const role = message.metadata?.roleName || 'Member'; // Déterminer le texte de la notification let notificationText = ''; if (message.type === 'file') { notificationText = `${memberEmoji} (${role}) in ${processEmoji}: New file - ${message.fileName}`; } else { - notificationText = `${memberEmoji} (${role}) in ${processEmoji}: ${message.text}`; + notificationText = `${memberEmoji} (${role}) in ${processEmoji}: ${message.metadata.text}`; } // Créer la notification const notification = { memberId, text: notificationText, - time: message.time + time: new Date(message.metadata.timestamp).toLocaleString('fr-FR') }; // Ajouter la notification et mettre à jour l'interface @@ -420,27 +419,26 @@ class ChatElement extends HTMLElement { dbRequest.onsuccess = async (event) => { const db = dbRequest.result; - // Utiliser une seule transaction pour les deux opérations const transaction = db.transaction(['diffs'], 'readwrite'); const store = transaction.objectStore('diffs'); try { // Premier message - await new Promise((resolve, reject) => { - const messageTemplate = { - value_commitment: uniqueKey, - messaging_id: processId, - description: 'message_content', - metadata: { - text: messageText, - timestamp: timestamp, - sender: myAddresses[0], - recipient: this.selectedMemberId, - messageState: this.messageState, - roleName: this.selectedRole - } - }; + const messageTemplate = { + value_commitment: uniqueKey, + messaging_id: processId, + description: 'message_content', + metadata: { + text: messageText, + timestamp: timestamp, + sender: myAddresses[0], + recipient: this.selectedMemberId, + messageState: this.messageState, + roleName: this.selectedRole + } + }; + await new Promise((resolve, reject) => { const request = store.add(messageTemplate); request.onsuccess = () => { console.log('✅ Message saved'); @@ -451,24 +449,28 @@ class ChatElement extends HTMLElement { }); // Réponse automatique - await new Promise((resolve, reject) => { - const autoReplyTemplate = { - value_commitment: `${processId}${timestamp + 1000}`, - messaging_id: processId, - description: 'message_content', - metadata: { - text: "Je suis un message automatique de réponse", - timestamp: timestamp + 1000, - sender: this.selectedMemberId, - recipient: myAddresses[0], - messageState: this.messageState, - roleName: this.selectedRole - } - }; + const autoReplyTemplate = { + value_commitment: `${processId}${timestamp + 1000}`, + messaging_id: processId, + description: 'message_content', + metadata: { + text: "Je suis un message automatique de réponse��", + timestamp: timestamp + 1000, + sender: this.selectedMemberId, + recipient: myAddresses[0], + messageState: this.messageState, + roleName: this.selectedRole + } + }; + await new Promise((resolve, reject) => { const request = store.add(autoReplyTemplate); request.onsuccess = () => { console.log('✅ Auto reply saved'); + // Ajouter la notification pour la réponse automatique + if (myAddresses[0]) { + this.addNotification(myAddresses[0], autoReplyTemplate); + } resolve(); }; request.onerror = () => reject(request.error); @@ -563,7 +565,6 @@ class ChatElement extends HTMLElement { const messageElement = document.createElement('div'); messageElement.className = 'message-container'; - // Vérifier si le message vient de l'utilisateur courant const isCurrentUser = message.metadata.sender === myAddresses[0]; messageElement.style.justifyContent = isCurrentUser ? 'flex-end' : 'flex-start';