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);
|
||||
const pairingProcess = await this.getMyProcessId();
|
||||
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);
|
||||
|
||||
if (message.type === 'file') {
|
||||
|
Loading…
x
Reference in New Issue
Block a user