Add reloadMemberChat
This commit is contained in:
parent
a16c42acac
commit
32e96a572c
@ -575,6 +575,120 @@ class ChatElement extends HTMLElement {
|
|||||||
console.log("SENDER: ", message.metadata.sender);
|
console.log("SENDER: ", message.metadata.sender);
|
||||||
const pairingProcess = await this.getMyProcessId();
|
const pairingProcess = await this.getMyProcessId();
|
||||||
const senderEmoji = await addressToEmoji(pairingProcess);
|
const senderEmoji = await addressToEmoji(pairingProcess);
|
||||||
|
|
||||||
|
if (message.type === 'file') {
|
||||||
|
let fileContent = '';
|
||||||
|
if (message.content.type.startsWith('image/')) {
|
||||||
|
fileContent = `
|
||||||
|
<div class="file-preview">
|
||||||
|
<img src="${message.content.data}" alt="Image" style="max-width: 200px; max-height: 200px;"/>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
} else {
|
||||||
|
const blob = this.base64ToBlob(message.content.data, message.content.type);
|
||||||
|
const url = URL.createObjectURL(blob);
|
||||||
|
fileContent = `
|
||||||
|
<div class="file-download">
|
||||||
|
<a href="${url}" download="${message.content.name}">
|
||||||
|
📎 ${message.content.name}
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
messageContent.innerHTML = `
|
||||||
|
<div class="message-content">
|
||||||
|
<strong>${senderEmoji}</strong>: ${fileContent}
|
||||||
|
</div>
|
||||||
|
<div class="message-time">
|
||||||
|
${new Date(message.metadata.createdAt).toLocaleString('fr-FR')}
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
} else {
|
||||||
|
messageContent.innerHTML = `
|
||||||
|
<div class="message-content">
|
||||||
|
<strong>${senderEmoji}</strong>: ${message.content}
|
||||||
|
</div>
|
||||||
|
<div class="message-time">
|
||||||
|
${new Date(message.metadata.createdAt).toLocaleString('fr-FR')}
|
||||||
|
</div>
|
||||||
|
`;
|
||||||
|
}
|
||||||
|
|
||||||
|
messageElement.appendChild(messageContent);
|
||||||
|
messagesContainer.appendChild(messageElement);
|
||||||
|
}
|
||||||
|
|
||||||
|
this.scrollToBottom(messagesContainer);
|
||||||
|
} else {
|
||||||
|
console.log('No messages found');
|
||||||
|
}
|
||||||
|
this.scrollToBottom(messagesContainer);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('❌ Error in loadMemberChat:', error);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private async reloadMemberChat(pairingProcess: string) {
|
||||||
|
try {
|
||||||
|
const service = await Services.getInstance();
|
||||||
|
const myAddresses = await service.getMemberFromDevice();
|
||||||
|
if (!myAddresses) {
|
||||||
|
console.error('No paired member found');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
const messagesContainer = this.shadowRoot?.querySelector('#messages');
|
||||||
|
|
||||||
|
if (!messagesContainer) return;
|
||||||
|
|
||||||
|
const emojis = await addressToEmoji(pairingProcess);
|
||||||
|
|
||||||
|
messagesContainer.innerHTML = '';
|
||||||
|
|
||||||
|
let dmProcessId = await this.processId;
|
||||||
|
|
||||||
|
// Récupérer les messages depuis les états du processus
|
||||||
|
const allMessages: any[] = [];
|
||||||
|
|
||||||
|
const dmProcess = await service.getProcess(dmProcessId);
|
||||||
|
|
||||||
|
console.log(dmProcess);
|
||||||
|
|
||||||
|
if (dmProcess?.states) {
|
||||||
|
for (const state of dmProcess.states) {
|
||||||
|
const pcd_commitment = state.pcd_commitment;
|
||||||
|
if (pcd_commitment) {
|
||||||
|
const message_hash = pcd_commitment.message;
|
||||||
|
if (message_hash) {
|
||||||
|
const diff = await service.getDiffByValue(message_hash);
|
||||||
|
const message = diff?.new_value;
|
||||||
|
if (message === "" || message === undefined) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
console.log('message', message);
|
||||||
|
allMessages.push(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
allMessages.sort((a, b) => a.metadata.createdAt - b.metadata.createdAt);
|
||||||
|
if (allMessages.length > 0) {
|
||||||
|
console.log('Messages found:', allMessages);
|
||||||
|
for (const message of allMessages) {
|
||||||
|
const messageElement = document.createElement('div');
|
||||||
|
messageElement.className = 'message-container';
|
||||||
|
|
||||||
|
const isCurrentUser = message.metadata.sender === myAddresses[0];
|
||||||
|
messageElement.style.justifyContent = isCurrentUser ? 'flex-end' : 'flex-start';
|
||||||
|
|
||||||
|
const messageContent = document.createElement('div');
|
||||||
|
messageContent.className = `message ${isCurrentUser ? 'user' : ''}`;
|
||||||
|
|
||||||
|
console.log("SENDER: ", message.metadata.sender);
|
||||||
|
const pairingProcess = await this.getMyProcessId();
|
||||||
const senderEmoji = await addressToEmoji(pairingProcess);
|
const senderEmoji = await addressToEmoji(pairingProcess);
|
||||||
|
|
||||||
if (message.type === 'file') {
|
if (message.type === 'file') {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user