send_message_ok
This commit is contained in:
parent
291626cc80
commit
116e7d9b54
@ -420,65 +420,76 @@ 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');
|
||||||
|
|
||||||
// Premier message
|
try {
|
||||||
const transaction1 = db.transaction(['diffs'], 'readwrite');
|
// Premier message
|
||||||
const store1 = transaction1.objectStore('diffs');
|
await new Promise<void>((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 = {
|
const request = store.add(messageTemplate);
|
||||||
value_commitment: uniqueKey,
|
request.onsuccess = () => {
|
||||||
messaging_id: processId,
|
console.log('✅ Message saved');
|
||||||
description: 'message_content',
|
messageInput.value = '';
|
||||||
metadata: {
|
resolve();
|
||||||
text: messageText,
|
};
|
||||||
timestamp: timestamp,
|
request.onerror = () => reject(request.error);
|
||||||
sender: myAddresses[0],
|
});
|
||||||
recipient: this.selectedMemberId,
|
|
||||||
messageState: this.messageState,
|
// Réponse automatique
|
||||||
roleName: this.selectedRole
|
await new Promise<void>((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 request = store.add(autoReplyTemplate);
|
||||||
|
request.onsuccess = () => {
|
||||||
|
console.log('✅ Auto reply saved');
|
||||||
|
resolve();
|
||||||
|
};
|
||||||
|
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
|
||||||
|
if (this.selectedMemberId) {
|
||||||
|
await this.loadMemberChat(this.selectedMemberId);
|
||||||
}
|
}
|
||||||
};
|
|
||||||
|
|
||||||
await new Promise<void>((resolve, reject) => {
|
} catch (error) {
|
||||||
const request = store1.add(messageTemplate);
|
console.error('❌ Transaction error:', error);
|
||||||
request.onsuccess = () => {
|
|
||||||
console.log('✅ Message saved');
|
|
||||||
messageInput.value = '';
|
|
||||||
resolve();
|
|
||||||
};
|
|
||||||
request.onerror = () => reject(request.error);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Réponse automatique
|
|
||||||
const transaction2 = db.transaction(['diffs'], 'readwrite');
|
|
||||||
const store2 = transaction2.objectStore('diffs');
|
|
||||||
|
|
||||||
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<void>((resolve, reject) => {
|
|
||||||
const request = store2.add(autoReplyTemplate);
|
|
||||||
request.onsuccess = () => {
|
|
||||||
console.log('✅ Auto reply saved');
|
|
||||||
resolve();
|
|
||||||
};
|
|
||||||
request.onerror = () => reject(request.error);
|
|
||||||
});
|
|
||||||
|
|
||||||
// Recharger les messages
|
|
||||||
if (this.selectedMemberId) {
|
|
||||||
await this.loadMemberChat(this.selectedMemberId);
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -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);
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user