recipient_msg_ok
This commit is contained in:
parent
303b29f3f3
commit
291626cc80
@ -113,10 +113,14 @@ 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');
|
||||||
@ -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);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
Loading…
x
Reference in New Issue
Block a user