init_member_role_message

This commit is contained in:
Pascal 2025-01-08 15:58:10 +01:00
parent 77dbde3129
commit ea88e55cf5

View File

@ -68,6 +68,9 @@ class ChatElement extends HTMLElement {
this.dom = getCorrectDOM('signature-element');
this.processId = this.getAttribute('process-id');
// Initialiser sdkClient
this.initSDKClient();
// Récupérer le processId depuis l'attribut du composant
console.log('🔍 Constructor - Process ID from element:', this.processId);
@ -239,6 +242,7 @@ class ChatElement extends HTMLElement {
const everyOneElse = otherMembers;
const messagingTemplate = {
process_id: crypto.randomUUID(),
parent_id: null,
description: 'messaging',
messages: {
state: 'initial',
@ -430,7 +434,6 @@ class ChatElement extends HTMLElement {
memberList = document.createElement('ul');
memberList.className = 'member-list';
// Récupérer les membres avec leurs sp_addresses
if (roleData.members) {
for (const member of roleData.members) {
const memberItem = document.createElement('li');
@ -439,7 +442,6 @@ class ChatElement extends HTMLElement {
const memberContainer = document.createElement('div');
memberContainer.className = 'member-container';
const emojiSpan = document.createElement('span');
emojiSpan.className = 'member-emoji';
if (member.sp_addresses?.[0]) {
@ -450,9 +452,43 @@ class ChatElement extends HTMLElement {
memberContainer.appendChild(emojiSpan);
memberItem.appendChild(memberContainer);
memberItem.onclick = (event) => {
memberItem.onclick = async (event) => {
event.stopPropagation();
this.loadMemberChat(member.sp_addresses[0]);
try {
// S'assurer que le SDK est initialisé
if (!this.sdkClient) {
await this.initSDKClient();
}
const groupItem = roleElement.closest('[data-process-id]');
const processId = groupItem?.getAttribute('data-process-id');
if (!processId) {
throw new Error('Process ID not found');
}
console.log('Creating messaging process with:', {
processId,
member,
sdkClientInitialized: !!this.sdkClient
});
const result = await this.createMessagingProcess(
[member],
'relay_address',
1
);
console.log('Messaging process created:', {
processId,
template: result,
member: member
});
this.loadMemberChat(member.sp_addresses[0]);
} catch (error) {
console.error('Error creating messaging process:', error);
}
};
memberList.appendChild(memberItem);
@ -762,6 +798,33 @@ class ChatElement extends HTMLElement {
console.log('🎯 New messaging process added successfully');
}
private async initSDKClient() {
try {
// Récupérer l'instance du SDK depuis window ou l'initialiser
this.sdkClient = (window as any).sdk || await this.createSDKClient();
if (!this.sdkClient) {
throw new Error('Failed to initialize SDK client');
}
} catch (error) {
console.error('Error initializing SDK client:', error);
}
}
private async createSDKClient() {
// Implémentez ici la logique de création du SDK client
// Ceci est un exemple, ajustez selon votre implémentation réelle
return new Promise((resolve) => {
// Logique d'initialisation du SDK
resolve({
is_paired: () => true, // Valeur par défaut pour le test
create_new_process: async (template: string, parentId: string | null, relayAddress: string, feeRate: number) => {
// Implémentation de create_new_process
return { success: true };
}
});
});
}
}
customElements.define('chat-element', ChatElement);