recipient_msg_ok

This commit is contained in:
Pascal 2025-01-14 13:12:43 +01:00
parent 303b29f3f3
commit 291626cc80

View File

@ -113,11 +113,15 @@ class ChatElement extends HTMLElement {
</div>
</div>
`;
window.toggleUserList = this.toggleUserList.bind(this);
window.loadMemberChat = this.loadMemberChat.bind(this);
window.loadMemberChat = (memberId: string | number) => {
if (typeof memberId === 'string') {
return this.loadMemberChat(memberId);
} else {
console.error('Invalid memberId type. Expected string, got number.');
}
};
this.notificationBadge = document.querySelector('.notification-badge');
this.notificationBoard = document.getElementById('notification-board');
this.notificationBell = document.getElementById('notification-bell');
@ -403,24 +407,23 @@ class ChatElement extends HTMLElement {
const myAddresses = await this.getMemberFromDevice();
if (!myAddresses) throw new Error('No paired member found');
console.log('📍 My addresses:', myAddresses);
console.log('👥 Using role:', this.selectedRole);
const timestamp = Date.now();
const processId = this.getAttribute('process-id');
const uniqueKey = `${processId}${timestamp}`;
// Ouvrir directement IndexedDB
// Ouvrir IndexedDB
const dbRequest = indexedDB.open('4nk');
dbRequest.onerror = (event) => {
console.error("Database error:", dbRequest.error);
};
dbRequest.onsuccess = (event) => {
dbRequest.onsuccess = async (event) => {
const db = dbRequest.result;
const transaction = db.transaction(['diffs'], 'readwrite');
const store = transaction.objectStore('diffs');
// Premier message
const transaction1 = db.transaction(['diffs'], 'readwrite');
const store1 = transaction1.objectStore('diffs');
const messageTemplate = {
value_commitment: uniqueKey,
@ -436,24 +439,47 @@ class ChatElement extends HTMLElement {
}
};
console.log('📝 Saving message template:', messageTemplate);
await new Promise<void>((resolve, reject) => {
const request = store1.add(messageTemplate);
request.onsuccess = () => {
console.log('✅ Message saved');
messageInput.value = '';
resolve();
};
request.onerror = () => reject(request.error);
});
const request = store.add(messageTemplate);
// Réponse automatique
const transaction2 = db.transaction(['diffs'], 'readwrite');
const store2 = transaction2.objectStore('diffs');
request.onsuccess = () => {
console.log('✅ Message successfully saved to IndexedDB');
messageInput.value = '';
this.loadMemberChat(this.selectedMemberId!);
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
}
};
request.onerror = () => {
console.error('❌ Error saving message:', request.error);
};
await new Promise<void>((resolve, reject) => {
const request = store2.add(autoReplyTemplate);
request.onsuccess = () => {
console.log('✅ Auto reply saved');
resolve();
};
request.onerror = () => reject(request.error);
});
transaction.oncomplete = () => {
console.log('✅ Transaction completed');
db.close();
};
// Recharger les messages
if (this.selectedMemberId) {
await this.loadMemberChat(this.selectedMemberId);
}
};
} catch (error) {
@ -522,7 +548,6 @@ class ChatElement extends HTMLElement {
// Trier les messages par timestamp
messages.sort((a, b) => a.metadata.timestamp - b.metadata.timestamp);
// Afficher les messages
for (const message of messages) {
const messageElement = document.createElement('div');
messageElement.className = 'message-container';
@ -547,7 +572,6 @@ class ChatElement extends HTMLElement {
messagesContainer.appendChild(messageElement);
}
// Scroll vers le bas
this.scrollToBottom(messagesContainer);
}
};