send_message_ok

This commit is contained in:
Pascal 2025-01-14 14:00:40 +01:00
parent 291626cc80
commit 116e7d9b54

View File

@ -420,11 +420,13 @@ 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 store = transaction.objectStore('diffs');
try {
// Premier message // Premier message
const transaction1 = db.transaction(['diffs'], 'readwrite'); await new Promise<void>((resolve, reject) => {
const store1 = transaction1.objectStore('diffs');
const messageTemplate = { const messageTemplate = {
value_commitment: uniqueKey, value_commitment: uniqueKey,
messaging_id: processId, messaging_id: processId,
@ -439,8 +441,7 @@ class ChatElement extends HTMLElement {
} }
}; };
await new Promise<void>((resolve, reject) => { const request = store.add(messageTemplate);
const request = store1.add(messageTemplate);
request.onsuccess = () => { request.onsuccess = () => {
console.log('✅ Message saved'); console.log('✅ Message saved');
messageInput.value = ''; messageInput.value = '';
@ -450,9 +451,7 @@ class ChatElement extends HTMLElement {
}); });
// Réponse automatique // Réponse automatique
const transaction2 = db.transaction(['diffs'], 'readwrite'); await new Promise<void>((resolve, reject) => {
const store2 = transaction2.objectStore('diffs');
const autoReplyTemplate = { const autoReplyTemplate = {
value_commitment: `${processId}${timestamp + 1000}`, value_commitment: `${processId}${timestamp + 1000}`,
messaging_id: processId, messaging_id: processId,
@ -467,8 +466,7 @@ class ChatElement extends HTMLElement {
} }
}; };
await new Promise<void>((resolve, reject) => { const request = store.add(autoReplyTemplate);
const request = store2.add(autoReplyTemplate);
request.onsuccess = () => { request.onsuccess = () => {
console.log('✅ Auto reply saved'); console.log('✅ Auto reply saved');
resolve(); resolve();
@ -476,10 +474,23 @@ class ChatElement extends HTMLElement {
request.onerror = () => reject(request.error); request.onerror = () => reject(request.error);
}); });
// Attendre la fin de la transaction
await new Promise<void>((resolve, reject) => {
transaction.oncomplete = () => {
console.log('✅ Transaction completed');
resolve();
};
transaction.onerror = () => reject(transaction.error);
});
// Recharger les messages // Recharger les messages
if (this.selectedMemberId) { if (this.selectedMemberId) {
await this.loadMemberChat(this.selectedMemberId); await this.loadMemberChat(this.selectedMemberId);
} }
} catch (error) {
console.error('❌ Transaction error:', error);
}
}; };
} catch (error) { } catch (error) {
@ -551,11 +562,13 @@ class ChatElement extends HTMLElement {
for (const message of messages) { for (const message of messages) {
const messageElement = document.createElement('div'); const messageElement = document.createElement('div');
messageElement.className = 'message-container'; messageElement.className = 'message-container';
messageElement.style.justifyContent =
message.metadata.sender === myAddresses[0] ? 'flex-end' : 'flex-start'; // 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';
const messageContent = document.createElement('div'); const messageContent = document.createElement('div');
messageContent.className = `message ${message.metadata.sender === myAddresses[0] ? 'user' : ''}`; messageContent.className = `message ${isCurrentUser ? 'user' : ''}`;
const senderEmoji = await addressToEmoji(message.metadata.sender); const senderEmoji = await addressToEmoji(message.metadata.sender);