From d9b3175442c9ec98f71b8d2ad33059e2cc407ddd Mon Sep 17 00:00:00 2001 From: Pascal Date: Wed, 29 Jan 2025 17:19:11 +0100 Subject: [PATCH] load_diff_files_ok --- src/pages/chat/chat.ts | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/src/pages/chat/chat.ts b/src/pages/chat/chat.ts index a2413a6..3502326 100755 --- a/src/pages/chat/chat.ts +++ b/src/pages/chat/chat.ts @@ -1173,7 +1173,7 @@ class ChatElement extends HTMLElement { `; this.shadowRoot?.appendChild(modal); - this.handleFileClick(modal); + this.handleFileUpload(modal); const closeButton = modal.querySelector('.close-modal'); closeButton?.addEventListener('click', () => { modal.remove(); @@ -1182,29 +1182,37 @@ class ChatElement extends HTMLElement { } } - //function for the click on files in the modal - private handleFileClick(modal: HTMLDivElement) { + private handleFileUpload(modal: HTMLElement) { const fileInput = modal.querySelector('#file-input') as HTMLInputElement; const fileList = modal.querySelector('#file-list'); + const selectedFiles = new Set(); - fileInput?.addEventListener('change', () => { - if (fileList && fileInput.files) { - fileList.innerHTML = ''; - Array.from(fileInput.files).forEach(file => { - const fileItem = document.createElement('div'); - fileItem.className = 'file-item'; - fileItem.innerHTML = ` - ${file.name} - - `; - fileList.appendChild(fileItem); + fileInput?.addEventListener('change', () => { + if (fileList && fileInput.files) { + // Ajouter les nouveaux fichiers à la liste existante + Array.from(fileInput.files).forEach(file => { + if (!Array.from(selectedFiles).some(f => f.name === file.name)) { + selectedFiles.add(file); + const fileItem = document.createElement('div'); + fileItem.className = 'file-item'; + fileItem.innerHTML = ` + ${file.name} + + `; + fileList.appendChild(fileItem); - fileItem.querySelector('.remove-file')?.addEventListener('click', () => { - fileItem.remove(); - }); + fileItem.querySelector('.remove-file')?.addEventListener('click', () => { + selectedFiles.delete(file); + fileItem.remove(); }); } }); + // Réinitialiser l'input pour permettre la sélection du même fichier + fileInput.value = ''; + } + }); + + return selectedFiles; } private async generateMembersList(members: string[]) {