diff --git a/src/pages/account/account.ts b/src/pages/account/account.ts index ea9f582..b74b503 100755 --- a/src/pages/account/account.ts +++ b/src/pages/account/account.ts @@ -757,7 +757,7 @@ private editDeviceName(cell: HTMLTableCellElement): void { input.focus(); } -private finishEditing(cell: HTMLTableCellElement, input: HTMLInputElement): void { +private async finishEditing(cell: HTMLTableCellElement, input: HTMLInputElement): Promise { const newValue = input.value.trim(); if (newValue === '') { cell.textContent = cell.getAttribute('data-original-value') || ''; @@ -765,24 +765,25 @@ private finishEditing(cell: HTMLTableCellElement, input: HTMLInputElement): void return; } - const row = cell.closest('tr'); - if (!row) return; + try { + const service = await Services.getInstance(); + const pairingProcessId = service.getPairingProcessId(); + const process = await service.getProcess(pairingProcessId); + + // Mettre à jour le nom via le service + await service.updateMemberPublicName(process, newValue); - const table = row.closest('tbody'); - if (!table) return; - - const index = Array.from(table.children).indexOf(row); - const storageKey = STORAGE_KEYS[currentMode]; - const rows: Row[] = JSON.parse(localStorage.getItem(storageKey) || '[]'); - - if (rows[index]) { - rows[index].column2 = newValue; - localStorage.setItem(storageKey, JSON.stringify(rows)); + // Mettre à jour l'interface + cell.textContent = newValue; + cell.classList.remove('editing'); + } catch (error) { + console.error('Failed to update name:', error); + // Restaurer l'ancienne valeur en cas d'erreur + cell.textContent = cell.getAttribute('data-original-value') || ''; + cell.classList.remove('editing'); } - - cell.textContent = newValue; - cell.classList.remove('editing'); } + // Fonction pour gérer le téléchargement de l'avatar private handleAvatarUpload(event: Event): void { const input = event.target as HTMLInputElement; diff --git a/src/pages/chat/chat.ts b/src/pages/chat/chat.ts index 0a9da25..51ed812 100755 --- a/src/pages/chat/chat.ts +++ b/src/pages/chat/chat.ts @@ -1087,7 +1087,9 @@ class ChatElement extends HTMLElement { const service = await Services.getInstance(); const allProcesses: Record = await service.getProcesses(); + console.log('All processes:', allProcesses); const myProcesses: string[] = await service.getMyProcesses(); + console.log('My processes:', myProcesses); const groupList = this.shadowRoot?.querySelector('#group-list'); if (!groupList) { @@ -1116,7 +1118,7 @@ class ChatElement extends HTMLElement { }); }); - //trier les processus : ceux de l'utilisateur en premier + // Trier les processus : ceux de l'utilisateur en premier const sortedEntries = Object.entries(allProcesses).sort( ([keyA], [keyB]) => { const inSetA = myProcesses.includes(keyA); diff --git a/src/services/service.ts b/src/services/service.ts index a8ba4fb..8240e11 100755 --- a/src/services/service.ts +++ b/src/services/service.ts @@ -1394,15 +1394,13 @@ export default class Services { } public getLastCommitedState(process: Process): ProcessState { - if (process.states.length === 0) return null; - const processTip = process.states[process.states.length - 1].commited_in; - const lastCommitedState = process.states.findLast(state => state.commited_in !== processTip); - if (lastCommitedState) { - return lastCommitedState; - } else { - console.error('Can\'t find last commited state'); - return null; + if (!process || !process.states || process.states.length === 0) { + console.error('Invalid process or no states'); + return null; } + + // Dans la nouvelle structure, le premier état est le dernier état validé + return process.states[0]; } public isPairingProcess(roles: Record): boolean {