This commit is contained in:
Pascal 2025-01-14 14:07:01 +01:00
parent 116e7d9b54
commit 1b980fd53c

View File

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