roles_ok_css_KO

This commit is contained in:
Pascal 2025-01-07 18:44:16 +01:00 committed by NicolasCantu
parent 6bd4be8a44
commit 271af1a7f3

View File

@ -30,6 +30,12 @@ interface LocalNotification {
time: string;
}
interface Process {
encrypted_pcd: {
roles: Record<string, any>;
};
}
export function initChat() {
const chatElement = document.createElement('chat-element');
const container = document.querySelector('.container');
@ -409,15 +415,38 @@ class ChatElement extends HTMLElement {
}
private loadGroupList(processId: string): void {
private async loadGroupList(processId: string): Promise<void> {
console.log('🔍 Loading group list with processId:', processId);
const groupList = this.shadowRoot?.querySelector('#group-list');
if (!groupList) {
console.error('❌ Group list element not found');
if (!groupList) return;
groupList.innerHTML = '';
const dbRequest = window.indexedDB.open('4nk');
const db = await new Promise<IDBDatabase>((resolve, reject) => {
dbRequest.onsuccess = () => resolve(dbRequest.result);
dbRequest.onerror = () => reject(dbRequest.error);
});
const transaction = db.transaction(['processes'], 'readonly');
const processStore = transaction.objectStore('processes');
const processRequest = processStore.get(processId);
const process = await new Promise<any>((resolve, reject) => {
processRequest.onsuccess = () => {
console.log('🔍 Process found:', processRequest.result);
resolve(processRequest.result);
};
processRequest.onerror = () => reject(processRequest.error);
});
if (!process?.states?.[0]?.encrypted_pcd?.roles) {
console.error('❌ Process structure invalid:', process);
return;
}
groupList.innerHTML = '';
const roles = process.states[0].encrypted_pcd.roles;
console.log('🔑 Roles found:', roles);
const li = document.createElement('li');
li.className = 'group-list-item';
@ -426,66 +455,33 @@ class ChatElement extends HTMLElement {
const container = document.createElement('div');
container.className = 'group-item-container';
const emojiSpan = document.createElement('span');
emojiSpan.className = 'process-emoji';
const nameSpan = document.createElement('span');
nameSpan.textContent = `Process : `;
nameSpan.textContent = ` Process : `;
nameSpan.className = 'process-name';
// Ajouter les emojis de l'adresse
addressToEmoji(processId).then(emojis => {
await addressToEmoji(processId).then(emojis => {
const emojiSpan = document.createElement('span');
emojiSpan.className = 'process-emoji';
emojiSpan.textContent = emojis;
});
// Ajouter l'événement de clic pour afficher/masquer les rôles
container.addEventListener('click', (event) => {
event.stopPropagation();
const roleList = li.querySelector('.role-list') as HTMLElement;
if (roleList) {
roleList.style.display = roleList.style.display === 'none' ? 'block' : 'none';
}
container.appendChild(emojiSpan);
});
container.appendChild(nameSpan);
container.appendChild(emojiSpan);
li.appendChild(container);
// Créer et ajouter la liste des rôles
const roleList = document.createElement('ul');
roleList.className = 'role-list';
roleList.style.display = 'none';
const defaultRoles = ['Owner', 'Member', 'Validator'];
defaultRoles.forEach(roleName => {
Object.keys(roles).forEach(roleName => {
const roleItem = document.createElement('li');
roleItem.className = 'role-item';
const roleContainer = document.createElement('div');
roleContainer.className = 'role-item-container';
const roleNameSpan = document.createElement('span');
roleNameSpan.className = 'role-name';
roleNameSpan.textContent = roleName;
//const folderIcon = document.createElement('span');
//folderIcon.className = 'folder-icon';
roleContainer.appendChild(roleNameSpan);
//roleContainer.appendChild(folderIcon);
roleItem.appendChild(roleContainer);
roleItem.addEventListener('click', (event) => {
event.stopPropagation();
this.toggleMembers({ members: [] }, roleItem);
});
roleItem.textContent = roleName;
roleList.appendChild(roleItem);
});
li.appendChild(roleList);
groupList.appendChild(li);
console.log('✅ Group list item added for process:', processId);
}