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>
</div> </div>
`; `;
window.toggleUserList = this.toggleUserList.bind(this); 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.notificationBadge = document.querySelector('.notification-badge');
this.notificationBoard = document.getElementById('notification-board'); this.notificationBoard = document.getElementById('notification-board');
this.notificationBell = document.getElementById('notification-bell'); this.notificationBell = document.getElementById('notification-bell');
@ -403,24 +407,23 @@ class ChatElement extends HTMLElement {
const myAddresses = await this.getMemberFromDevice(); const myAddresses = await this.getMemberFromDevice();
if (!myAddresses) throw new Error('No paired member found'); 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 timestamp = Date.now();
const processId = this.getAttribute('process-id'); const processId = this.getAttribute('process-id');
const uniqueKey = `${processId}${timestamp}`; const uniqueKey = `${processId}${timestamp}`;
// Ouvrir directement IndexedDB // Ouvrir IndexedDB
const dbRequest = indexedDB.open('4nk'); const dbRequest = indexedDB.open('4nk');
dbRequest.onerror = (event) => { dbRequest.onerror = (event) => {
console.error("Database error:", dbRequest.error); console.error("Database error:", dbRequest.error);
}; };
dbRequest.onsuccess = (event) => { dbRequest.onsuccess = async (event) => {
const db = dbRequest.result; 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 = { const messageTemplate = {
value_commitment: uniqueKey, 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 = () => { const autoReplyTemplate = {
console.log('✅ Message successfully saved to IndexedDB'); value_commitment: `${processId}${timestamp + 1000}`,
messageInput.value = ''; messaging_id: processId,
this.loadMemberChat(this.selectedMemberId!); 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 = () => { await new Promise<void>((resolve, reject) => {
console.error('❌ Error saving message:', request.error); const request = store2.add(autoReplyTemplate);
}; request.onsuccess = () => {
console.log('✅ Auto reply saved');
resolve();
};
request.onerror = () => reject(request.error);
});
transaction.oncomplete = () => { // Recharger les messages
console.log('✅ Transaction completed'); if (this.selectedMemberId) {
db.close(); await this.loadMemberChat(this.selectedMemberId);
}; }
}; };
} catch (error) { } catch (error) {
@ -522,7 +548,6 @@ class ChatElement extends HTMLElement {
// Trier les messages par timestamp // Trier les messages par timestamp
messages.sort((a, b) => a.metadata.timestamp - b.metadata.timestamp); messages.sort((a, b) => a.metadata.timestamp - b.metadata.timestamp);
// Afficher les messages
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';
@ -547,7 +572,6 @@ class ChatElement extends HTMLElement {
messagesContainer.appendChild(messageElement); messagesContainer.appendChild(messageElement);
} }
// Scroll vers le bas
this.scrollToBottom(messagesContainer); this.scrollToBottom(messagesContainer);
} }
}; };