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

View File

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