Various minor fixes

This commit is contained in:
NicolasCantu 2025-01-22 14:05:56 +01:00
parent 1e9a3f01c1
commit f5fd7a8a34
2 changed files with 63 additions and 67 deletions

View File

@ -36,7 +36,7 @@ class ChatElement extends HTMLElement {
private processId: string | null = null; private processId: string | null = null;
private processRoles: any | null = null; private processRoles: any | null = null;
private selectedMember: string[] = []; private selectedMember: string[] | null = [];
private notifications: LocalNotification[] = []; private notifications: LocalNotification[] = [];
private notificationBadge = document.querySelector('.notification-badge'); private notificationBadge = document.querySelector('.notification-badge');
private notificationBoard = document.getElementById('notification-board'); private notificationBoard = document.getElementById('notification-board');
@ -53,7 +53,6 @@ class ChatElement extends HTMLElement {
constructor() { constructor() {
super(); super();
this.attachShadow({ mode: 'open' }); this.attachShadow({ mode: 'open' });
this.processId = this.getAttribute('process-id');
this.shadowRoot!.innerHTML = ` this.shadowRoot!.innerHTML = `
@ -377,7 +376,7 @@ class ChatElement extends HTMLElement {
const memberList = document.createElement('div'); const memberList = document.createElement('div');
memberList.className = 'member-list active'; memberList.className = 'member-list active';
for (const memberAddress of members) { for (const [processId, member] of Object.entries(members)) {
const memberItem = document.createElement('li'); const memberItem = document.createElement('li');
memberItem.className = 'member-item'; memberItem.className = 'member-item';
@ -387,7 +386,7 @@ class ChatElement extends HTMLElement {
const emojiSpan = document.createElement('span'); const emojiSpan = document.createElement('span');
emojiSpan.className = 'member-emoji'; emojiSpan.className = 'member-emoji';
const emojis = await addressToEmoji(memberAddress); const emojis = await addressToEmoji(processId);
emojiSpan.textContent = `Member : ${emojis}`; emojiSpan.textContent = `Member : ${emojis}`;
memberContainer.appendChild(emojiSpan); memberContainer.appendChild(emojiSpan);
@ -396,7 +395,7 @@ class ChatElement extends HTMLElement {
memberItem.addEventListener('click', async () => { memberItem.addEventListener('click', async () => {
try { try {
await this.loadMemberChat([memberAddress]); await this.loadMemberChat(member.sp_addresses);
} catch (error) { } catch (error) {
console.error('Error loading member chat:', error); console.error('Error loading member chat:', error);
} }
@ -624,12 +623,8 @@ class ChatElement extends HTMLElement {
memberItem.onclick = async (event) => { memberItem.onclick = async (event) => {
event.stopPropagation(); event.stopPropagation();
// Stocker le rôle sélectionné try {
this.selectedRole = roleName; await this.loadMemberChat(member.sp_addresses);
console.log('🎭 Selected role:', this.selectedRole);
try {
await this.loadMemberChat([member.sp_addresses]);
} catch (error) { } catch (error) {
console.error('❌ Error handling member click:', error); console.error('❌ Error handling member click:', error);
} }
@ -826,9 +821,9 @@ class ChatElement extends HTMLElement {
members: Array.from(uniqueMembers.values()) members: Array.from(uniqueMembers.values())
}; };
roleContainer.addEventListener('click', (event) => { roleContainer.addEventListener('click', async (event) => {
event.stopPropagation(); event.stopPropagation();
this.toggleMembers(filteredRoleData, roleItem); await this.toggleMembers(filteredRoleData, roleItem);
}); });
roleContainer.appendChild(roleNameSpan); roleContainer.appendChild(roleNameSpan);

View File

@ -30,7 +30,7 @@ export default class Services {
private database: any; private database: any;
private routingInstance!: ModalService; private routingInstance!: ModalService;
private relayAddresses: { [wsurl: string]: string } = {}; private relayAddresses: { [wsurl: string]: string } = {};
private membersList: Record<any, Process> = {}; private membersList: Record<string, Member> = {};
// Private constructor to prevent direct instantiation from outside // Private constructor to prevent direct instantiation from outside
private constructor() {} private constructor() {}
@ -331,65 +331,67 @@ export default class Services {
public async createDmProcess( public async createDmProcess(
otherMember: string[], otherMember: string[],
parentProcess: string,
): Promise<ApiReturn> { ): Promise<ApiReturn> {
try { if (otherMember.length === 0) {
console.log('🚀 Début createMessagingProcess'); throw new Error('Can\'t open dm with empty user');
console.log('📝 Parent Process ID:', parentProcess); }
console.log('👥 Other Member:', otherMember); try {
console.log('🚀 Début createDmProcess');
console.log('👥 Other Member:', otherMember);
if (!this.isPaired()) { if (!this.isPaired()) {
throw new Error('Device not paired'); throw new Error('Device not paired');
} }
const myAddresses = await this.getMemberFromDevice(); const myAddresses = await this.getMemberFromDevice();
console.log('🔑 Mes adresses:', myAddresses); console.log('🔑 Mes adresses:', myAddresses);
if (!myAddresses) { if (!myAddresses) {
throw new Error('No paired member found'); throw new Error('No paired member found');
} }
const messagingTemplate = { const dmTemplate = {
parent_id: parentProcess, description: 'dm',
message: '', message: '',
roles: { roles: {
dm: { dm: {
members: [ members: [
{ sp_addresses: myAddresses }, { sp_addresses: myAddresses },
{ sp_addresses: otherMember } { sp_addresses: otherMember }
], ],
validation_rules: [ validation_rules: [
{ {
quorum: 0.01, quorum: 0.01,
fields: ['message'], fields: ['message', 'description', 'roles'],
min_sig_member: 0.01, min_sig_member: 0.01,
}, },
], ],
storages: [storageUrl] storages: [storageUrl]
} }
} }
}; };
console.log('📋 Template final:', JSON.stringify(messagingTemplate, null, 2)); console.log('📋 Template final:', JSON.stringify(dmTemplate, null, 2));
console.log('👥 Création du process message comme enfant de:', parentProcess);
const relayAddress = this.getAllRelays()[0]['spAddress']; const relayAddress = this.getAllRelays()[0]['spAddress'];
const feeRate = 1; const feeRate = 1;
const initState = JSON.stringify(messagingTemplate); const initState = JSON.stringify(dmTemplate);
const result = this.sdkClient.create_new_process( await this.checkConnections ([{ sp_addresses: otherMember}]);
JSON.stringify(messagingTemplate),
null,
relayAddress,
feeRate
);
// console.log('✅ Process message créé:', result);
return result; const result = this.sdkClient.create_new_process(
} catch (e) { initState,
console.error('❌ Erreur:', e); null,
throw e; relayAddress,
} feeRate
);
return result;
} catch (e) {
console.error('❌ Erreur:', e);
throw e;
}
} }
// Create prd update for current process and update // Create prd update for current process and update
@ -1042,9 +1044,8 @@ export default class Services {
* Retourne la liste de tous les membres * Retourne la liste de tous les membres
* @returns Un tableau contenant tous les membres * @returns Un tableau contenant tous les membres
*/ */
public getAllMembers(): Process[] { public getAllMembers(): Record<string, Member> {
console.log('🔍 Liste complète des membres:', Object.values(this.membersList)); return this.membersList;
return Object.values(this.membersList);
} }